题目大意:n个麻球,第一天有k个,麻球生命期为一天,临近死亡前会有i的几率生出Pi个麻球。问m天后麻球全部死亡概率

设f[i]表示i天后一个麻球全部死亡的概率

有f[1] = P0

f[i] = P0 + P1 * f[1] + P2 * f[2]^2 + ... + Pi * f[i]^i + ... +Pn * f[n] ^ n

即:一个麻球在第一天结束生i个麻球,i个麻球会从第二天开始执行第一天的麻球的行为,因此i天后全部死亡对第二天的麻球来说就是i-1天后全部死亡。由于麻球死亡相互独立,只需i次方即可

最终答案f[m]^k

蛇皮自己写的pow被卡精度

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <vector>
#include <cmath>
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))
#define abs(a) ((a) < 0 ? (-1 * (a)) : (a))
inline void swap(int &a, int &b)
{
long long tmp = a;a = b;b = tmp;
}
inline void read(int &x)
{
x = ;char ch = getchar(), c = ch;
while(ch < '' || ch > '') c = ch, ch = getchar();
while(ch <= '' && ch >= '') x = x * + ch - '', ch = getchar();
if(c == '-') x = -x;
}
const int INF = 0x3f3f3f3f;
const int MAXN = + ;
int t,n,k,m;
double p[MAXN], dp[MAXN];
/*double pow(double a, int b)
{
double r = 1, base = a;
for(;b;b >>= 1)
{
if(b & 1) r *= base;
base *= base;
}
return r;
}*/
int main()
{
read(t);
int ca = ;
for(;t;-- t)
{
++ ca;
memset(dp, , sizeof(dp));
read(n), read(k), read(m);
-- n;
for(register int i = ;i <= n;++ i) scanf("%lf", &p[i]);
dp[] = p[];
for(register int i = ;i <= m;++ i)
for(register int j = ;j <= n;++ j)
dp[i] += p[j] * pow(dp[i - ], j);
printf("Case #%d: %.7lf\n", ca, pow(dp[m], k));
}
return ;
}

UVA11021

最新文章

  1. AutoMapper(七)
  2. ORACLE使用GV_$TEMP_SPACE_HEADER统计临时表空使用情况不准确的问题
  3. LeetCode-62-Unique Paths
  4. AR增强现实特点、关键技术和应用
  5. 《算法导论》习题解答 Chapter 22.1-2(邻接矩阵与链表)
  6. 苹果搜索广告后台大揭秘,最全最细致详解,手把手设置教程「后附官方视频」-b
  7. Android内核驱动程序的编写和编译过程
  8. mui开发app之js将base64转图片文件
  9. idea的一揽子工程
  10. JFile的导入xlsx与xls
  11. WAS ND V6下配置IHS V6
  12. linux进程管理之进程创建
  13. Kde桌面的Mac化
  14. 在Linux下使用gcc编译mesa文件报undefined reference to symbol &#39;sin@@GLIBC_2.2.5和DSO missing from command line两个错误的解决方案
  15. 剑指Offer 56. 删除链表中重复的结点 (链表)
  16. gridview导excel及解决导出中文乱码的方法
  17. Real Time Rendering 1
  18. 从零开始写一个武侠冒险游戏-0-开发框架Codea简介
  19. OpenStack中的Multipath faulty device的成因及解决(part 1)
  20. cnn 滤波

热门文章

  1. linux系统使用小记
  2. loj2212 方伯伯的OJ
  3. 阶梯nim游戏
  4. cache方法用于查询缓存操作,也是连贯操作方法之一。
  5. 线性dp——cf1032
  6. VS code 设置侧边栏字体大小
  7. python2 和Python3 转unicode占位。
  8. Error-IDEA:“Import from external model” 与 “Create from existing source”的区别
  9. R语言数据预处理
  10. HTML 颜色表示