题意

中文题面,就不解释了


分析

显然这道题直接求期望太麻烦,想想转化问题(这转化太神了)。

定义f(i,j)f(i,j)f(i,j)表示第iii张卡总共被经过jjj次的概率,有转移方程式

f(i,j)=f(i−1,j)∗(1−pi−1)j+f(i−1,j+1)∗(1−(1−pi−1)j+1)\large f(i,j)=f(i-1,j)*(1-p_{i-1})^j+f(i-1,j+1)*(1-(1-p_{i-1})^{j+1})f(i,j)=f(i−1,j)∗(1−pi−1​)j+f(i−1,j+1)∗(1−(1−pi−1​)j+1)最终答案就是

∑i=1n∑j=1rf(i,j)∗(1−(1−p[i])j)∗di\large \sum_{i=1}^n\sum_{j=1}^rf(i,j)*(1-(1-p[i])^j)*d_ii=1∑n​j=1∑r​f(i,j)∗(1−(1−p[i])j)∗di​



−.−-.-−.−

AC CODE
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 250;
const int MAXM = 150;
double p[MAXN], d[MAXN], f[MAXN][MAXM], mul[MAXN][MAXM];
int main () {
int T, n, m;
scanf("%d", &T);
while(T--) {
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; ++i) {
scanf("%lf%lf", &p[i], &d[i]);
mul[i][0] = 1;
for(int j = 1; j <= m; ++j)
mul[i][j] = mul[i][j-1] * (1-p[i]);
}
memset(f, 0, sizeof f);
f[1][m] = 1; double ans = 0;
for(int i = 1; i <= n; ++i)
for(int j = m; j >= 1; --j) {
if(!(i == 1 && j == m))
f[i][j] = f[i-1][j] * mul[i-1][j] + f[i-1][j+1] * (1-mul[i-1][j+1]);
ans += f[i][j] * (1-mul[i][j]) * d[i];
}
printf("%.10lf\n", ans);
}
}

TIP:预处理幂快的多

最新文章

  1. 进程监控工具supervisor 启动Mongodb
  2. c# 我所理解的 值类型 and 引用类型
  3. Mac版PhpStorm之XAMPP整合apache服务器配置
  4. stm32 hid 键盘描述
  5. Atitit &#160;发帖机实现(1)-----UsrQBm2008 页面上下文规范
  6. HDU 5025:Saving Tang Monk(BFS + 状压)
  7. 【设计模式】单件模式(Singleton)--各类单件模式的比较
  8. Word 使用技巧
  9. C# winform 窗体从右下角向上弹出窗口效果
  10. C++之运算符重载(2)
  11. Automated Telephone Exchange
  12. sonar + jacoco + mockMvc 模拟session 用户登录 配合SpringSecurity 权限 快速测试代码覆盖率.
  13. VS 自动展开选中当前代码所在的文件位置的功能
  14. sql server 性能调优之 资源等待SOS_SCHEDULER_YIELD
  15. bootstrap-table前端修改后台传来的数据重新进行渲染
  16. ES6之Set与Map加深理解
  17. 用PHP山寨一款软件
  18. 把旧系统迁移到.Net Core 2.0 日记(5) Razor/HtmlHelper/资源文件
  19. 【Spark算子】:reduceByKey、groupByKey和combineByKey
  20. RPC远程调用概念 &amp;amp;&amp;amp; demo实例

热门文章

  1. 在airflow的BashOperator中执行docker容器中的脚本容易忽略的问题
  2. 从 select ... for update来分析mysql的锁
  3. Word、Excel、PPT 2016、2013、2010、2007 没有保存或断电导致文件丢失怎么恢复?
  4. PHP的 parse_ini_file 解析配置文件
  5. Pod——状态和生命周期管理及探针和资源限制
  6. 编写并提取通用 ShellCode
  7. SQL 删除重复记录,并保留其中一条
  8. (七)freemarker的基本语法及入门基础
  9. ASP.NET Core 入门(1)(搭建环境CentOS)
  10. spring源码(1)---idea基础环境搭建