标签:过程 -- 多少 链接 ++ 简单 pow log print
题目链接[http://acm.hdu.edu.cn/showproblem.php?pid=4815]
#include<bits/stdc++.h> const int maxn = 40*1050; double dp[maxn]; int a[55]; int T,n; double p; int main () { scanf("%d",&T); while(T--) { int sum=0; scanf("%d%lf",&n,&p); for(int i = 1;i <= n;i++) { scanf("%d",&a[i]); sum += a[i]; } for(int i = 0;i <= sum;i++) dp[i]=0; dp[0]=1; for(int i = 1;i <= n;i++) for(int j = sum;j >= a[i];j--) dp[j] += dp[j-a[i]]; double nu = pow(2,n); for(int i = 0;i <= sum;i++) dp[i] /= nu; double fal = 0.0; for(int k = 0;k <= sum;k++) { fal += dp[k]; if(fal >= p) { printf("%d\n",k); break; } } } return 0; }
标签:过程 -- 多少 链接 ++ 简单 pow log print
原文地址:http://www.cnblogs.com/pealicx/p/6188622.html