UVA 11021 Tribles(递推+概率)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA 11021 Tribles(递推+概率)相关的知识,希望对你有一定的参考价值。

 

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33059

 

【思路】

       递推+概率。

       设f[i]表示一只Tribble经过i天之后死绝的概率,则有递推式:

              f[i]=p[0]+p[1]*(f[i-1]^1)+…p[n-1]*(f[i-1]^n-1)

       最后答案为f[m]^k

 

【代码】

 

 1 #include<cstdio>
 2 #include<cstring>
 3 #define FOR(a,b,c) for(int a=(b);a<=(c);a++)
 4 using namespace std;
 5 
 6 const int N = 1000+10;
 7 
 8 double p[N] , f[N];
 9 int n,m,k;
10 
11 double pow(double x,int p) {
12     double ans=1,tmp=x;
13     while(p) {
14         if(p&1) ans*=tmp;
15         tmp*=tmp; p>>=1;
16     }
17     return ans;
18 }
19 
20 int main() {
21     int T,kase=0;
22     scanf("%d",&T);
23     while(T--) {
24         scanf("%d%d%d",&n,&k,&m);
25         FOR(i,0,n-1) scanf("%lf",&p[i]);
26         f[0]=0; f[1]=p[0];
27         FOR(i,2,m) {
28             f[i]=0;
29             FOR(j,0,n-1) f[i]+=p[j]*pow(f[i-1],j);
30         }
31         printf("Case #%d: %.7lf\n",++kase,pow(f[m],k));
32     }
33     return 0;
34 }

 

以上是关于UVA 11021 Tribles(递推+概率)的主要内容,如果未能解决你的问题,请参考以下文章

UVA11021 Tribles[离散概率 DP]

uva 11021 Tribles

Tribles UVA - 11021(全概率推论)

期望DP UVA11021 Tribles

uva-11021-全概率公式

UVA 11021 /概率