Problem Description

Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到这个学校offer的可能性b。不同学校之间是否得到offer不会互相影响。“I NEED A OFFER”,他大叫一声。帮帮这个可怜的人吧,帮助他计算一下,他可以收到至少一份offer的最大概率。(如果Speakless选择了多个学校,得到任意一个学校的offer都可以)。

Input

输入有若干组数据,每组数据的第一行有两个正整数n,m(0<=n<=10000,0<=m<=10000) 
后面的m行,每行都有两个数据ai(整型),bi(实型)分别表示第i个学校的申请费用和可能拿到offer的概率。 
输入的最后有两个0。

Output

每组数据都对应一个输出,表示Speakless可能得到至少一份offer的最大概率。用百分数表示,精确到小数点后一位。

Sample Input

10 3
4 0.1
4 0.2
5 0.3
0 0

Sample Output

44.0%

Hint

You should use printf("%%") to print a '%'.

解题思路:典型的01背包,不过这题要转换一下角度,要求至少得到一份offer的最大概率,那么就求一份都得不到的最小概率p,然后1-p就是至少得到一份offer的最大概率,易得一维数组的状态转移方程为:dp[j]=max(dp[j],(1-(1-dp[j-a[i]])*(1-b[i])))。(dp[j]表示从前i所学校中花了j万美元的申请费用至少得到一份offer的最大概率)
AC代码:
 #include<bits/stdc++.h>
using namespace std;
int W,n,a[];
double b[],dp[];
int main(){
while(cin>>W>>n&&(W+n)){
memset(dp,,sizeof(dp));
for(int i=;i<n;++i)
cin>>a[i]>>b[i];
for(int i=;i<n;++i){//n个学校
for(int j=W;j>=a[i];--j)//注意01背包:逆序枚举
dp[j]=max(dp[j],(-(-dp[j-a[i]])*(-b[i])));//取补集
}
printf("%.1f%%\n",dp[W]*);
}
return ;
}

最新文章

  1. ASP.NET MVC学习之母版页和自定义控件的使用
  2. [转]OAuth 2.0 - Authorization Code授权方式详解
  3. for循环中的占位 pass
  4. [php-src]Php扩展的内存泄漏处理思路
  5. ADO.Net(四)——扩展属性和配置文件应用
  6. iOS 文件大小转换成 KB、MB、GB 。。。
  7. 理解并使用.NET 4.5中的HttpClient
  8. html之内联标签img
  9. 怎么在logcat中显示system.com.print中的打印信息
  10. android .9.png ”点九” 图片制作方法
  11. PHP基础入门(三)---PHP函数基础
  12. 单人纸牌_NOI导刊2011提高(04)
  13. Sql的基础知识技巧(三)
  14. TortoiseSVN客户端的使用说明
  15. Python-Thread(通俗易懂)
  16. Linux 下MQ的安装和配置亲测
  17. [luogu5002]专心OI - 找祖先
  18. Java 执行jar文件出现版本错误信息
  19. 转)TNS协议--翻译自《The Oracle Hackers Handbook》
  20. centos7 安装 supervisor

热门文章

  1. 挖掘更合适的MVP模式的架构设计
  2. ACdream原创群赛(13)のwuyiqi退役专场 C True love
  3. centos 安装mysql时错误unknown variable &amp;#39;defaults-file=/opt/redmine-2.6.0-2/mysql/my.cnf&amp;#39;
  4. 跟面试官讲Binder(零)
  5. enterText与typeText
  6. 【内存数据库】OracleTimesten连接DSN创建用户
  7. 解决GitHub加载和下载慢问题
  8. arcgis 发布地图服务
  9. 2016/3/26 weixin 头像 昵称 网页优化显示 缺表中数据 只有代码 无显示效果
  10. java8--Mysql数据库与JDBC编程(java疯狂讲义3复习笔记)