hdu 4815 Little Tiger vs. Deep Monkey (背包+思维)
来源:互联网 发布:黑客linux入门 编辑:程序博客网 时间:2024/05/22 21:45
题意:
由于题目是pdf文档就不上题目了。大意是说。有A,B两个人答题比赛。一共有N道题目(N<=40)每道题有一个分值po[i](0<po[i]<=1000)。现假定B答对每到题的概率为0.5问A至少要得多少分才能保证不输给B的概率不小于P。
思路:
开始拿到题目的时候以为是概率DP但后来一分析就豁然开朗。我们要算A不输给B的概率。如果我们知道A得每种得分的频数y。和A不小于B得分的频数x.那么p=x/y。先只需x/y>=p。x>=y*p。就行了。因为答每到题有两种可能。所以B得分就有y=2^n种可能。现在关键就是求x了。要使得分最小。我们可以先用背包求出B得每种得分的方案数。让后得分从小到大累加方案数。第一个使得x>=y*p的得分就是最小得分。
详细见代码:
#include <iostream>#include<stdio.h>#include<string.h>#include<math.h>using namespace std;int dp[40100],po[50];long long need,all;int main(){ int n,i,j,t,sum; double p; scanf("%d",&t); while(t--) { need=sum=all=0; scanf("%d%lf",&n,&p); for(i=0;i<n;i++) scanf("%d",&po[i]),sum+=po[i]; memset(dp,0,sizeof dp); dp[0]=1,all=1LL<<n;//注意LL for(i=0;i<n;i++)//算出每种得分的频数 for(j=sum;j>=po[i];j--) if(dp[j-po[i]]) dp[j]+=dp[j-po[i]]; need=ceil(all*p);//注意向上取整 for(i=0,all=0;i<=sum;i++) { all+=dp[i]; if(all>=need) { printf("%d\n",i); break; } } } return 0;}目前还是杭电第一的代码哦~
3 0
- hdu 4815 Little Tiger vs. Deep Monkey (背包+思维)
- [hdu 4815]Little Tiger vs. Deep Monkey 01背包
- HDU 4815 Little Tiger vs. Deep Monkey 背包问题
- HDU 4815 Little Tiger vs. Deep Monkey 01背包
- -----hdu 4815 -01背包- Little Tiger vs. Deep Monkey
- HDU 4815 Little Tiger vs. Deep Monkey
- hdu 4815 Little Tiger vs. Deep Monkey
- hdu 4815 Little Tiger vs. Deep Monkey
- HDU - 4815 Little Tiger vs. Deep Monkey
- HDU 4815 Little Tiger vs. Deep Monkey
- 【HDU】4815 - Little Tiger vs. Deep Monkey(母函数)
- Little Tiger vs. Deep Monkey HDU
- HDU 4815 Little Tiger vs. Deep Monkey (0/1背包应用)
- hdu 4815 Little Tiger vs. Deep Monkey 概率dp
- HDU 4815——Little Tiger vs. Deep Monkey
- hdu 4815 Little Tiger vs. Deep Monkey(数学+dp)
- HDU 4815 Little Tiger vs. Deep Monkey(母函数)
- 杭电-4815-Little Tiger vs. Deep Monkey(01背包的运用)
- QTP工作原理
- 后缀树详解以及具体应用
- windows下图形界面转为控制台的main函数入口
- android之屏幕适配之一理论知识
- 现代社会,你认知多少???
- hdu 4815 Little Tiger vs. Deep Monkey (背包+思维)
- 数据集
- Flex4 vs Flex3: DataGroup vs Repeater
- ORM是是非非
- 在IE8下解决无法调用迅雷下载的问题
- alsa 编程入门
- [BZOJ1226][SDOI2009][状态压缩DP]学校食堂Dining
- eoe上的android开源小项目
- alibaba的fastjson