麻球繁衍(Tribbles 概率dp)
摘自:《算法竞赛入门经典-训练指南》-刘汝佳
题意:
有K只麻球,每只生存一天就会死亡,每只麻球在死之前有可能生下一些麻球,生i个麻球的概率是pi,问m天后所有的麻球都死亡的概率是多少?
思路:
涉及到全概率公式,因为麻球的各种活动都互不影响,所以现在只考虑一直麻球,我们假设f[i]是第i天全部都死亡的概率,那么f[i] = p0 + p1*f[i-1] + p2*f[i-1]^2 + ...pn-1*f[i - 1]^(n-1),其中pjf(i-1)^j的含义是这个麻球生了j个后代,他们在i-1天后全部死亡,注意这j个后代的死亡是独立的,而每个死亡的概率都是f(i-1)^j也就是用前一天的全部死亡概率来代替今天的每一只死亡的概率,又因为今天的每只的生死概率什么的都是独立的,所以p2*f[i-1]^2可以理解成剩下2只,然后两只都死了,这样最后在第m天死光的概率就是f[m],但是这个只是一只麻球的,所有麻球都死光是f[m]^k。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
#define maxn 1010
using namespace std;
int n,k,m;
double p[maxn],f[maxn];
int main(){int T;int i,j,k;scanf("%d",&T);for(int cas=1;cas<=T;cas++){scanf("%d%d%d",&n,&k,&m);for(i=0;i<n;i++)scanf("%lf",&p[i]);f[0]=0;f[1]=p[0];for(i=2;i<=m;i++){f[i]=0;for(int j=0;j<n;j++){f[i]+=p[j]*pow(f[i-1],j);} }printf("Case #%d: %.7lf\n",cas,pow(f[m],k));}return 0;
}
麻球繁衍(Tribbles 概率dp)相关推荐
- cogs 1487. 麻球繁衍(概率dp)
分析: 概率dp.first 由于每只麻球,在出生之后就可以独立生活了, 所以我们可以只计算出一开始只有一个麻球,m天后全部死亡的概率 由全概率公式得: 假设A1,A2,A3,-..An为一个完备事件 ...
- [COGS1487]麻球繁衍(概率dp)
题目描述 传送门 题解 f(i)f(i)表示开始有1只麻球,i天之后全部死亡的概率.由全概率公式有 f(i)=P0+P1f(i−1)+P2f(i−1)2+P3f(i−1)3+...+Pn−1f(i−1 ...
- Uva 11201麻球繁衍(设概率方程的技巧)
Link 题意 kkk个球,每个球只存在一天就死去,但死前有pip_ipi的概率生iii个球(i∈[0,n−1]i\in[0,n-1]i∈[0,n−1]) 问在mmm天以前死光的概率是多少(k,n, ...
- uva 11021 Tribbles 麻球繁衍 概率
题目链接: https://uva.onlinejudge.org/external/110/11021.pdf dp[x]的意义是某个麻球从出生到它和其后代全部死亡不超过x天的概率. 对于dp[x] ...
- 【概率】COGS1487 麻球繁衍
一开始手推概率,结果发现结果一直对不上.后来发现是计算器没用好... 比较好思考的是 求k只麻球的概率 其实是求 一只麻球的概率^k的概率 (因为乘法原理,每个麻球的概率都是相对独立的所以乘起来) ...
- UVA11021麻球繁衍
题意: 有K只麻球,每只生存一天就会死亡,每只麻球在死之前有可能生下一些麻球,生i个麻球的概率是pi,问m天后所有的麻球都死亡的概率是多少? 思路: 涉及到全概率公式,因为麻球的 ...
- UVA 11021 麻球繁衍
题意: 有K只麻球,每只生存一天就会死亡,每只麻球在死之前有可能生下一些麻球,生i个麻球的概率是pi,问m天后所有的麻球都死亡的概率是多少? 思路: 涉及到全概率公式,因为麻球的各种活动都 ...
- cogs 1487 麻球繁衍
[题目描述] 万有引力定律: "使物体相互靠近的力的大小与物体的质量成正比--而物体的质量又由同一种力决定.这是一个有趣并且有益的例子,说明了科学是如何用A证明B,再用B证明A的." ...
- cogs 1487. 麻球繁衍
你有一坨K个毛球.这种毛球只会存活一天.在死亡之前,一个毛球有P_i的概率生出i个毛球(i=0,1,...,n-1).m天后所有毛球都死亡的概率是多少?(包含在第m天前全部死亡的情况) 题解: 由于k ...
最新文章
- pandas 实现DataFrame的合并Merge
- 面向对象之__isset__unset
- Redhat7修改默认运行级别方法
- 【Linux】一步一步学Linux——sshd命令(177)
- css flex排序居中
- Java:判断某年是闰年or平年并输出某月的天数
- mysql中 创建函数失败_Mysql创建函数出错
- 新浪微博since_id值
- 一款利用PIN管设计的可调衰减器
- JavaScript 获取字符串的最后一个字符
- 使用Python API实现TRT版BN/hswish/Silu等算子
- 在cmd中怎么进入mysql?
- OPENMV上的目标检测,目标定位模型
- BurpSuite爆破(Intruder)模块四种模式介绍
- 论文研读笔记(二)——VGG
- 汽车电子EMC实验简介
- 异常(父类对象ani instanceof是不是 子类Cat 的实例)
- ‘inet_ntoa‘: Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disa
- 域名解析和内网穿透实验
- 【傻瓜式教程】Windows下安装Hive MySQL版【附安装Hadoop教程】全网最详细的图文教程