题目传送门

题意:开始有$k$只兔子,每只都是活一天就死,每只死前都会有$pi$的概率生出$i$只兔子。求$m$天后兔子死光的概率。

思路: 

  设$f[i]$为一只兔子在第i天死完的概率,那么答案就是$f[m]^k$。

  所以关键是求$f[i]$.

     由全概率公式得到

    $f[i]=p0+p1*f[i-1]+p2*f[i-1]^2+...+pn*f[i-1]^n$

  这个式子要怎么理解呢?p0是一只兔子第一天就死完的概率。p1是一只兔子在第一天生出了一只兔子,那么这种情况下在第i天死完的概率就是p1*f[i-1],由于兔子死亡是独立重复时间,所以概率以指数的形式相乘。

  

#pragma GCC optimize (2)
#pragma G++ optimize (2)
#pragma comment(linker, "/STACK:102400000,102400000")
#include<bits/stdc++.h>
#include<unordered_map>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define dep(i,b,a) for(int i=b;i>=a;--i)
#define clr(a,b) memset(a,b,sizeof(a))
#define pb push_back
#define pii pair<int,int >
using namespace std;
typedef long long ll;
ll rd()
{
ll x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
const int maxn=;
const int inf=0x3f3f3f3f;
int n,m,k,T;
double dp[maxn],f[maxn],p[maxn];
int main(){
cin>>T;
int cat=;
while(T--){
cin>>n>>k>>m;
double res=;
rep(i,,n-){
scanf("%lf",&p[i]);
}
f[]=p[];
rep(i,,m){
f[i]=;
rep(j,,n-){
f[i]+=p[j]*pow(f[i-],j);
}
}
printf("Case #%d: %.7f\n",cat++,pow(f[m],k));
}
}

UVA11021 Tribles 概率dp的更多相关文章

  1. UVA - 11021 Tribles 概率dp

    题目链接: http://vjudge.net/problem/UVA-11021 Tribles Time Limit: 3000MS 题意 有k只麻球,每只活一天就会死亡,临死之前可能会出生一些新 ...

  2. UVa 11021 Tribles (概率DP + 组合数学)

    题意:有 k 只小鸟,每只都只能活一天,但是每只都可以生出一些新的小鸟,生出 i 个小鸟的概率是 Pi,问你 m 天所有的小鸟都死亡的概率是多少. 析:先考虑只有一只小鸟,dp[i] 表示 i 天全部 ...

  3. UVA 11021 C - Tribles(概率DP)

    记忆化就可以搞定,比赛里都没做出来,真的是态度有问题啊... #include <iostream> #include<cstdio> #include<cstring& ...

  4. 洛谷 UVA11021 Tribles

    UVA11021 Tribles 题意翻译 题目大意 一开始有kk种生物,这种生物只能活1天,死的时候有p_ipi​的概率产生ii只这种生物(也只能活一天),询问m天内所有生物都死的概率(包括m天前死 ...

  5. 概率dp专辑

    求概率 uva11021 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  6. Codeforces 28C [概率DP]

    /* 大连热身D题 题意: 有n个人,m个浴室每个浴室有ai个喷头,每个人等概率得选择一个浴室. 每个浴室的人都在喷头前边排队,而且每个浴室内保证大家都尽可能均匀得在喷头后边排队. 求所有浴室中最长队 ...

  7. HDU 4405 Aeroplane chess (概率DP)

    题意:你从0开始,要跳到 n 这个位置,如果当前位置是一个飞行点,那么可以跳过去,要不然就只能掷骰子,问你要掷的次数数学期望,到达或者超过n. 析:概率DP,dp[i] 表示从 i  这个位置到达 n ...

  8. POJ 2096 Collecting Bugs (概率DP)

    题意:给定 n 类bug,和 s 个子系统,每天可以找出一个bug,求找出 n 类型的bug,并且 s 个都至少有一个的期望是多少. 析:应该是一个很简单的概率DP,dp[i][j] 表示已经从 j ...

  9. POJ 2151 Check the difficulty of problems (概率DP)

    题意:ACM比赛中,共M道题,T个队,pij表示第i队解出第j题的概率 ,求每队至少解出一题且冠军队至少解出N道题的概率. 析:概率DP,dp[i][j][k] 表示第 i 个队伍,前 j 个题,解出 ...

随机推荐

  1. JDBC getConnection细节

    https://blog.csdn.net/luanlouis/article/details/29850811 概述             一般情况下,在应用程序中进行数据库连接,调用JDBC接口 ...

  2. Codeforces 1169E DP

    题意:给你一个长度为n的序列,有q次询问,每次询问给出两个位置x和y(x < y),问是否可从x到达y?可达的定义是:如果存在一个序列(假设长度为k),其中p1 = x, pk = y,并且这个 ...

  3. zabbix之自动注册,编写触发器:一定时间内超过某个负载值的时间

    zabbix中添加主机很多时可以考虑自动注册来自动添加,下面按照图片顺序来看,zabbix版本:3.0.28 超过负载30%的持续时间 创建触发器:

  4. Mina---系统学习

    1.为何使用Mina? java提供的BIO.NIO使用的复杂性等原因,导致Mina框架的诞生: 2.什么时候使用Mina? 易于使用 高并发的用户量 被证明的系统: Mina已被全球数以万计的应用使 ...

  5. vue static和assets的区别

    static和assets的区别,原理就在于webpack是如何处理静态资源的 assets 1)在vue组件中,所有模板和css都会被vue-html-loader和css-loader解析,并查找 ...

  6. 如何将项目中的package.json文件中的模块更新到最新版本

    有时候自己之前开发的项目回头运行的时候发行好多模块的版本不是最新的,此时想更为为最新版本,使用如下命令即可: npm i -g npm-check-updates ncu -u npm install

  7. VC 串口通讯基本原理,讲的很是详细

    目 录打开串口............................................................................................. ...

  8. 树分基础 bzoj 1468

    我们对于一棵树,我们找一个根,然后统计过这个点的路径有多少符合要求.怎么搞呢?我们可以先维护一个数据结构,然后把先把根作为一个距离自己为0的点放进去,然后对于每一棵子树,先找出所有的与之前的数据结构的 ...

  9. linux 下vi与vim区别以及vim的使用

    vi与vim vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对 ...

  10. 芜湖市2018市队选拔Day2T1

    好激动啊,Day2竟然AK了! Day2T1养宠物 Descriptionbadgers是可爱的动物,Smart想拥有一些.宠物店提供N个badgers,编号为1..N,Smart都很喜欢,所以他想拥 ...