标签:i++ 百分比 成功 print 概率 ble 容量 需要 处理
样例输入1
3 1 0
10 20 30
-1 -1 2
样例输入2
5 1 2
36 44 13 83 63
-1 2 -1 2 1
样例输出1
0.300000
样例输出2
0.980387
#include <cstdio> #include <iostream> #include <algorithm> using namespace std; int n,l,K; struct challenge { double p; int a; }c[210]; double f[210][210][210],ans; bool cmp(challenge aa,challenge bb) { return aa.a>bb.a; } int main() { scanf("%d%d%d",&n,&l,&K); int i,j,k; for(i=1;i<=n;i++) { scanf("%lf",&c[i].p); c[i].p*=0.01; } for(i=1;i<=n;i++) scanf("%d",&c[i].a); sort(c+1,c+n+1,cmp); f[0][0][K]=1.0; for(i=1;i<=n;i++) { for(j=0;j<=i;j++) { for(k=0;k<=n;k++) { f[i][j][k]+=f[i-1][j][k]*(1.0-c[i].p); if(c[i].a<=k) f[i][j][k]+=f[i-1][j-1][k-c[i].a]*c[i].p; } for(k=n+1;k<=n+c[i].a;k++) f[i][j][n]+=f[i-1][j-1][k-c[i].a]*c[i].p; //容量大于n的情况全按n处理 } } for(i=l;i<=n;i++) for(j=0;j<=n;j++) ans+=f[n][i][j]; printf("%.6f",ans); return 0; }
【TYVJ1864】[Poetize I]守卫者的挑战 概率与期望
标签:i++ 百分比 成功 print 概率 ble 容量 需要 处理
原文地址:http://www.cnblogs.com/CQzhangyu/p/6198780.html