传送门:POJ2096
题意大致是说一个软件有s个子系统,会产生n种bug。 每天都会发现一个bug,发生在某个子系统中(两者均可能重复)。求找到所有种类的bug,且每个子系统都找到bug的天数的期望。
思路:计算出每种状态的转移状态,算期望即可(代码比较好懂)
代码真心短:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,m; double p1,p2,p3,p4,pall,f[1030][1030]; int (){ while(~scanf("%d%d",&n,&m)){ for (int i=n;i>=0;i--) for (int j=m;j>=0;j--){ if (i==n && j==m) continue; p1=(n-i)*(m-j); p2=(n-i)*j; p3=i*(m-j); p4=i*j; pall=n*m; f[i][j]=1.0*(p1*f[i+1][j+1]+p2*f[i+1][j]+p3*f[i][j+1]+n*m)/(pall-p4); } printf("%.4f",f[0][0]); } return 0; }
|
近期评论