ZOJ 4530 Bloodsucker(期望)

题目链接

以前暑假一次练习赛的题目,当时如此的水题,很茫然啊,现在大体明白求期望都是倒着推的以后,这个题就很简单了。这个题直接算就可以,每一个状态都只能是从上一个状态推出来的,利用组合计算出概率,取倒数就是期望,因为精度WA了一次,好久没有1Y过了。。。

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cmath>
 4 #include <map>
 5 using namespace std;
 6 #define eps 1e-9
 7 #define ll __int64
 8 int main()
 9 {
10     int t,n,i;
11     double p,ans;
12     scanf("%d",&t);
13     while(t--)
14     {
15         ans = 0;
16         scanf("%d%lf",&n,&p);
17         for(i = 1;i <= n-1;i ++)
18         {
19             ans = ans + n*1.0/2.0/i/(n-i)/p*(n-1);
20         }
21         printf("%.3lf\n",ans+eps);
22     }
23     return 0;
24 }
posted @ 2012-10-05 10:30  Naix_x  阅读(176)  评论(0编辑  收藏  举报