首页 > 代码库 > UVA 11021 - Tribles(概率递推)
UVA 11021 - Tribles(概率递推)
UVA 11021 - Tribles
题目链接
题意:k个毛球,每个毛球死后会产生i个毛球的概率为pi,问m天后,所有毛球都死亡的概率
思路:f[i]为一个毛球第i天死亡的概率,那么
f(i)=p0+p1f(i?1)+p2f(i?1)2+...+pnf(i?1)n
然后k个毛球利用乘法定理,答案为f(m)k
代码:
#include <stdio.h> #include <string.h> #include <math.h> const int N = 1005; int t, n, k, m; double p[N], f[N]; int main() { int cas = 0; scanf("%d", &t); while (t--) { scanf("%d%d%d", &n, &k, &m); for (int i = 0; i < n; i++) scanf("%lf", &p[i]); f[0] = 0; f[1] = p[0]; for (int 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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。