码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 11021 Tribles(递推+概率)

时间:2016-01-27 09:21:32      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

 

题目链接: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(递推+概率)

标签:

原文地址:http://www.cnblogs.com/lidaxin/p/5162070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!