标签:des style http color strong os
Description
Input
Output
Sample Input
1 3 0.5 1 2 3
Sample Output
3
这题逗逼了,刚开始大帝告诉我题意可能我理解错了,然后就用二进制枚举了!然后然后……然后就浪费了一个多小时一直WA,后面大帝发觉我理解错了之后,他又敲了背包才过……唉……发现题意真的是有点难理解了。到现在题意和解法还都是半知半懂的。
正确的解法是:总的情况是:1<<n,然后可组合的次数除以总的情况>=p的最小分数是正确答案。
#include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; long long dp[40005]; int main() { int t; cin>>t; while(t--) { int n,i,j,sum=0,a[45]; double p; memset(dp,0,sizeof(dp)); dp[0]=1; cin>>n>>p; for(i=0;i<n;i++) scanf("%d",a+i),sum+=a[i]; sort(a,a+n); for(i=0;i<n;i++) for(j=sum;j>=a[i];j--) dp[j]+=dp[j-a[i]]; long long sum1=1LL<<n,sum2=0; for(i=0;i<=sum;i++) { sum2+=dp[i]; if((double)sum2/(double)sum1>=p) { printf("%d\n",i); break; } } } return 0; }
HDU 4815 2013长春现场赛C题,布布扣,bubuko.com
标签:des style http color strong os
原文地址:http://blog.csdn.net/u011466175/article/details/38014871