标签: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