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 }

你可能感兴趣的:(ZOJ)