HRY and codefire
设 dp[i][j]为第一个号i等级,第二个号j等级的期望值
a[i]存每个等级上分的概率
dp[i][j]=a[i]*dp[i+1][j]+(1-a[i])*dp[j][i]+1
dp[j][i]=a[j]*dp[j+1][i]+(1-a[j])*dp[i][j]+1
这个鬼东西改变上面值会影响下面值,所以要化简
联立得:
dp[i][j]=(a[i]*dp[i+1][j]+1+(1-a[i])*(a[j]*dp[j+1][i]+1))/(1-(1-a[i])*(1-a[j]));
dp[j][i]=(a[j]*dp[j+1][i]+1+(1-a[j])*(a[i]*dp[i+1][j]+1))/(1-(1-a[i])*(1-a[j]));
- #include <cstdio>
- #include <cmath>
- #include <cstring>
- #include <string>
- #include <sstream>
- #include <iostream>
- #include <cstdlib>
- #include <set>
- #include <map>
- #include <stack>
- #include <queue>
- #include <vector>
- #include <algorithm>
- #include <functional>
- using namespace std;
- #define ll long long
- #define re register
- #define pb push_back
- #define mp make_pair
- #define fi first
- #define se second
- #define P pair<int,int>
- void read(int &a)
- {
- a=;
- int d=;
- char ch;
- while(ch=getchar(),!isdigit(ch))
- if(ch=='-')
- d=-;
- a=ch^;
- while(ch=getchar(),isdigit(ch))
- a=(a<<)+(a<<)+(ch^);
- a*=d;
- }
- void write(int x)
- {
- if(x<)
- putchar(),x=-x;
- if(x>)
- write(x/);
- putchar(x%+'');
- }
- double dp[][],a[];
- int main()
- {
- int T;
- read(T);
- while(T--)
- {
- memset(dp,,sizeof(dp));
- memset(a,,sizeof(a));
- int n;
- read(n);
- for(re int i=;i<n;i++)
- scanf("%lf",&a[i]);
- for(re int i=n-;i>=;i--)
- for(re int j=n-;j>=;j--)
- {
- dp[i][j]=(a[i]*dp[i+][j]++(-a[i])*(a[j]*dp[j+][i]+))/(-(-a[i])*(-a[j]));
- dp[j][i]=(a[j]*dp[j+][i]++(-a[j])*(a[i]*dp[i+][j]+))/(-(-a[i])*(-a[j]));
- }
- printf("%.4lf\n",dp[][]);
- }
- return ;
- }
HRY and codefire的更多相关文章
- 华南理工大学“三七互娱杯”程序设计竞赛 HRY and codefire(概率期望DP)
https://ac.nowcoder.com/acm/contest/874/A 题目:有两个账号 , 一开始都为0级 , 求任意一个账号升级到N的期望 要求:如果当前账号嬴了 , 就继续沿用当前的 ...
- 华南理工大学“三七互娱杯”程序设计竞赛(重现赛)( HRY and array 高精度除法模板)
题目链接:https://ac.nowcoder.com/acm/contest/874/D 题目大意:给你两个数列a和b然后对a可以进行排列,对b可以任意排列,问你sigma(a(i)*b(i))的 ...
- 华南理工大学 “三七互娱杯” G HRY and tree
https://ac.nowcoder.com/acm/contest/874/G 题目大意:对于一个连通图,现在定义两个点的贡献为连接两点的路径上最大的权值 求任意两个点贡献的和 这个题看懂花了我很 ...
- 华南理工大学 “三七互娱杯” C HRY and Abaas
https://ac.nowcoder.com/acm/contest/874/C 题目大意是两人俄罗斯轮盘赌 n个位置 有m个子弹 已知哪些位置上有子弹 子弹打出 游戏结束 求第i次扣动扳机游戏才结 ...
- 华南理工大学“三七互娱杯” D HRY and array
https://ac.nowcoder.com/acm/contest/874/D 题目大意是给定两个数组A和B 数组的元素可以打乱重新排列 然后求∑ni=1 AiBi 的期望 我是这么理解的: 由于 ...
- 华南理工大学“三七互娱杯”程序设计竞赛 G: HRY and tree
题意:给出一棵树,定义两点间代价为两点路径上最长的边权,问任两点间的代价和. 解法:这道题的解法十分巧妙:直接用Kruskal对这棵树求最小生成树,然后对于即将加入到MST的这条边(u,v,w),这条 ...
- js中的navigator对象
Navigator 对象包含有关浏览器的信息.所有浏览器都支持该对象 在控制台中输出相关信息的代码 <script> console.log(navigator); </script ...
- 深入理解C++对象模型
C++对象模型是比较重要的一个知识点,学习C++对象的内存模型,就可以明白C++中的多态原理.类的初始化顺序问题.类的大小问题等. 1 C++对象模型基础 1.1 C++对象中都有哪些东东 C++对象 ...
- Python之路【第二十一篇】Django ORM详解
ORM回顾 关系对象映射(Object Relational Mapping,简称ORM). django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表. 对于ORM框 ...
随机推荐
- IDEA打包jar包
1.点击idea左边的Maven 2.点开要打包的项目下的-->Lifecycle-->双击package 3.jar包会默认保存在项目下的target文件夹下
- 烽火R2600交换机配置脚本
烽火交换机端口映射配置 ip nat inside source static udp iP 端口号 公网iP 端口号 ip nat inside source interface Vlan-intf ...
- C# 深拷贝对象实现
public class DeepCopyHelper { //三种深拷贝方法 public static T DeepCopyByReflect<T>(T obj) { //如果是字符串 ...
- kvm虚拟化1
计算机的五大组成部分: 运算器,控制器,存储器,输入,输出 虚拟化是对cpu ,内存,,磁盘, 网络,IO 的虚拟 cpu的虚拟 以时间分片形式进行,这样使得cpu可以运行多个进程 内存进行了空间 ...
- 编译linux内核前用make menuconfig设置时 Unable to find the ncurses ibraries的解决办法
今天在更新CentOS或者Ubuntu的内核时,执行make menuconfig可能看如这样的错误: *** Unable to find the ncurses libraries or the ...
- ISP PIPLINE (六) 3A 综述
前言: 上一篇文章: ISP PIPLINE (五) Denoise 下一篇文章: (1)3A定义包括什么 Iris:自动光圈,根据环境自动调节光圈. 既然讲到光圈,就先看一下光圈是什么,以及它如何影 ...
- BigDecimal 准确的 double , float 计算
public class ArithUtil { private static final int DEF_DIV_SCALE = 10; private ArithUtil() { } /** * ...
- Ubuntu安装并使用sogou输入法
1.下载搜狗输入法的安装包 下载地址为:http://pinyin.sogou.com/linux/ ,如下图,要选择与自己系统位数一致的安装包,我的系统是64位,所以我下载64位的安装包 2.按键C ...
- React(四)组件生命周期
组件的生命周期可分成三个状态: Mounting:已插入真实 DOM Updating:正在被重新渲染 Unmounting:已移出真实 DOM 生命周期的方法有: componentWillMoun ...
- Mac_配置jdk环境变量
进入命令行 cd ~ touch .bash_profile vi .bash_profile 输入内容jdk变量配置内容: JAVA_HOME=/Library/Java/JavaVirtualMa ...