【HDU1203】I NEED A OFFER!
来源:互联网 发布:python sftp 断点续传 编辑:程序博客网 时间:2024/06/07 19:28
【题目简介】
Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到这个学校offer的可能性b。不同学校之间是否得到offer不会互相影响。“INEED A OFFER”,他大叫一声。帮帮这个可怜的人吧,帮助他计算一下,他可以收到至少一份offer的最大概率。(如果Speakless选择了多个学校,得到任意一个学校的offer都可以)。
输入有若干组数据,每组数据的第一行有两个正整数n,m(0<=n<=10000,0<=m<=10000)
后面的m行,每行都有两个数据ai(整型),bi(实型)分别表示第i个学校的申请费用和可能拿到offer的概率。
输入的最后有两个0。
每组数据都对应一个输出,表示Speakless可能得到至少一份offer的最大概率。用百分数表示,精确到小数点后一位。
【输入样例】
10 3
4 0.1
4 0.2
5 0.3
0 0
【输出样例】
44.0%
【提示】
输出“%”用“printf(“%%”)”。
【分析&思路】
本题最难理解的是“概率”这个数学名词,我们可以将它比作一个黑暗的“社会”,你需要在里面交税,交税时,你需要经过一道道审核,审核官会偷你一些钱,最后你被偷的钱所占你交上去的钱的百分率就是“概率”。
拿样例来说吧:
假设我现在交了“100”的“税”,在第一道审核(即“学校”)时,被抽走了0.1的“税”,我还剩100 *(1 – 0.1)的“税”,即“90”,还剩下6万美元。
输出的来源:我在第二个学校和第三个学校“交税”,还剩下1万美元,被第二个学校抽走0.2的“税”,被第三个学校抽走0.3的“税”,实际上我交的“税”只有1*(1-0.2)*(1-0.3),
即“0.56”,在用最开始的“1”减去“0.56”,得到的结果*100即为答案:44
所以,我们要使自己被收的“税”最多【我是不是有病】,然后就可以转化为一个01背包问题。
【代码&注释】
#include#includeusing namespace std;int main(){ int n,m,i,j; while(scanf("%d%d",&n,&m) && n + m)//n + m即为结束条件 { double f[10001]; fill(f,f+10001,0);//等价于memset(f,0,sizeof(f))或memset(f,0,sizeof(double) * 10001); for(i = 1;i <= m;i++)//枚举学校 { int a; double b; scanf("%d%lf",&a,&b);//输入学校情况 for(j = n;j >= 0;j--)//枚举 if(j >= a)//防止数组下标为负 f[j] = max(f[j],1 - (1 - b) * (1 - f[j - a])); //上01背包,第二个参数的改变即为“我被偷走了钱” } printf("%.1lf%%\n", f[n]*100);//f[n]为答案存储的地方,*100输出即可 } return 0;}
- I need a offer!(hdu1203)
- hdu1203 I NEED A OFFER!
- hdu1203 I NEED A OFFER!
- HDU1203 I NEED A OFFER!
- hdu1203 I NEED A OFFER!
- HDU1203-I NEED A OFFER!
- HDU1203,I NEED A OFFER!
- HDU1203 I NEED A OFFER!
- hdu1203(I NEED A OFFER!)
- I NEED A OFFER! hdu1203
- hdu1203 I NEED A OFFER!
- HDU1203-I NEED A OFFER!
- HDU1203 I NEED A OFFER!
- 【HDU1203】I NEED A OFFER!
- #HDU1203 I NEED A OFFER!
- hdu1203--I NEED A OFFER!
- HDU1203--I NEED A OFFER!--0-1
- hdu1203 I NEED A OFFER! (01背包)
- mysql权限修改
- ISCC 2017 writeup(部分)
- 面向对象编程--继承--类式继承
- tableview实现静态表格(纯代码)组头组尾实现
- 选举游戏(京东2016实习生真题)
- 【HDU1203】I NEED A OFFER!
- hadoop源码解析之hdfs读取数据全流程分析
- 581. Shortest Unsorted Continuous Subarray
- gitignore
- JS继承-构造函数式继承
- 鼠标点击页面中的任意标签,alert该标签的名称和 js实现点击<li>标签弹出其索引值
- 华为 路由器 防火墙设备路由转发原理
- vs2013中配置halcon13的步骤
- JS继承--组合继承