传送门:

设 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]));

  1. #include <cstdio>
  2. #include <cmath>
  3. #include <cstring>
  4. #include <string>
  5. #include <sstream>
  6. #include <iostream>
  7. #include <cstdlib>
  8. #include <set>
  9. #include <map>
  10. #include <stack>
  11. #include <queue>
  12. #include <vector>
  13. #include <algorithm>
  14. #include <functional>
  15. using namespace std;
  16. #define ll long long
  17. #define re register
  18. #define pb push_back
  19. #define mp make_pair
  20. #define fi first
  21. #define se second
  22. #define P pair<int,int>
  23. void read(int &a)
  24. {
  25. a=;
  26. int d=;
  27. char ch;
  28. while(ch=getchar(),!isdigit(ch))
  29. if(ch=='-')
  30. d=-;
  31. a=ch^;
  32. while(ch=getchar(),isdigit(ch))
  33. a=(a<<)+(a<<)+(ch^);
  34. a*=d;
  35. }
  36. void write(int x)
  37. {
  38. if(x<)
  39. putchar(),x=-x;
  40. if(x>)
  41. write(x/);
  42. putchar(x%+'');
  43. }
  44. double dp[][],a[];
  45. int main()
  46. {
  47. int T;
  48. read(T);
  49. while(T--)
  50. {
  51. memset(dp,,sizeof(dp));
  52. memset(a,,sizeof(a));
  53. int n;
  54. read(n);
  55. for(re int i=;i<n;i++)
  56. scanf("%lf",&a[i]);
  57. for(re int i=n-;i>=;i--)
  58. for(re int j=n-;j>=;j--)
  59. {
  60. dp[i][j]=(a[i]*dp[i+][j]++(-a[i])*(a[j]*dp[j+][i]+))/(-(-a[i])*(-a[j]));
  61. dp[j][i]=(a[j]*dp[j+][i]++(-a[j])*(a[i]*dp[i+][j]+))/(-(-a[i])*(-a[j]));
  62. }
  63. printf("%.4lf\n",dp[][]);
  64. }
  65. return ;
  66. }

HRY and codefire的更多相关文章

  1. 华南理工大学“三七互娱杯”程序设计竞赛 HRY and codefire(概率期望DP)

    https://ac.nowcoder.com/acm/contest/874/A 题目:有两个账号 , 一开始都为0级 , 求任意一个账号升级到N的期望 要求:如果当前账号嬴了 , 就继续沿用当前的 ...

  2. 华南理工大学“三七互娱杯”程序设计竞赛(重现赛)( HRY and array 高精度除法模板)

    题目链接:https://ac.nowcoder.com/acm/contest/874/D 题目大意:给你两个数列a和b然后对a可以进行排列,对b可以任意排列,问你sigma(a(i)*b(i))的 ...

  3. 华南理工大学 “三七互娱杯” G HRY and tree

    https://ac.nowcoder.com/acm/contest/874/G 题目大意:对于一个连通图,现在定义两个点的贡献为连接两点的路径上最大的权值 求任意两个点贡献的和 这个题看懂花了我很 ...

  4. 华南理工大学 “三七互娱杯” C HRY and Abaas

    https://ac.nowcoder.com/acm/contest/874/C 题目大意是两人俄罗斯轮盘赌 n个位置 有m个子弹 已知哪些位置上有子弹 子弹打出 游戏结束 求第i次扣动扳机游戏才结 ...

  5. 华南理工大学“三七互娱杯” D HRY and array

    https://ac.nowcoder.com/acm/contest/874/D 题目大意是给定两个数组A和B 数组的元素可以打乱重新排列 然后求∑ni=1 AiBi 的期望 我是这么理解的: 由于 ...

  6. 华南理工大学“三七互娱杯”程序设计竞赛 G: HRY and tree

    题意:给出一棵树,定义两点间代价为两点路径上最长的边权,问任两点间的代价和. 解法:这道题的解法十分巧妙:直接用Kruskal对这棵树求最小生成树,然后对于即将加入到MST的这条边(u,v,w),这条 ...

  7. js中的navigator对象

    Navigator 对象包含有关浏览器的信息.所有浏览器都支持该对象 在控制台中输出相关信息的代码 <script> console.log(navigator); </script ...

  8. 深入理解C++对象模型

    C++对象模型是比较重要的一个知识点,学习C++对象的内存模型,就可以明白C++中的多态原理.类的初始化顺序问题.类的大小问题等. 1 C++对象模型基础 1.1 C++对象中都有哪些东东 C++对象 ...

  9. Python之路【第二十一篇】Django ORM详解

    ORM回顾 关系对象映射(Object Relational Mapping,简称ORM). django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表. 对于ORM框 ...

随机推荐

  1. IDEA打包jar包

    1.点击idea左边的Maven 2.点开要打包的项目下的-->Lifecycle-->双击package 3.jar包会默认保存在项目下的target文件夹下

  2. 烽火R2600交换机配置脚本

    烽火交换机端口映射配置 ip nat inside source static udp iP 端口号 公网iP 端口号 ip nat inside source interface Vlan-intf ...

  3. C# 深拷贝对象实现

    public class DeepCopyHelper { //三种深拷贝方法 public static T DeepCopyByReflect<T>(T obj) { //如果是字符串 ...

  4. kvm虚拟化1

    计算机的五大组成部分: 运算器,控制器,存储器,输入,输出 虚拟化是对cpu   ,内存,,磁盘, 网络,IO 的虚拟 cpu的虚拟 以时间分片形式进行,这样使得cpu可以运行多个进程 内存进行了空间 ...

  5. 编译linux内核前用make menuconfig设置时 Unable to find the ncurses ibraries的解决办法

    今天在更新CentOS或者Ubuntu的内核时,执行make menuconfig可能看如这样的错误: *** Unable to find the ncurses libraries or the ...

  6. ISP PIPLINE (六) 3A 综述

    前言: 上一篇文章: ISP PIPLINE (五) Denoise 下一篇文章: (1)3A定义包括什么 Iris:自动光圈,根据环境自动调节光圈. 既然讲到光圈,就先看一下光圈是什么,以及它如何影 ...

  7. BigDecimal 准确的 double , float 计算

    public class ArithUtil { private static final int DEF_DIV_SCALE = 10; private ArithUtil() { } /** * ...

  8. Ubuntu安装并使用sogou输入法

    1.下载搜狗输入法的安装包 下载地址为:http://pinyin.sogou.com/linux/ ,如下图,要选择与自己系统位数一致的安装包,我的系统是64位,所以我下载64位的安装包 2.按键C ...

  9. React(四)组件生命周期

    组件的生命周期可分成三个状态: Mounting:已插入真实 DOM Updating:正在被重新渲染 Unmounting:已移出真实 DOM 生命周期的方法有: componentWillMoun ...

  10. Mac_配置jdk环境变量

    进入命令行 cd ~ touch .bash_profile vi .bash_profile 输入内容jdk变量配置内容: JAVA_HOME=/Library/Java/JavaVirtualMa ...