http://acm.hdu.edu.cn/showproblem.php?pid=1203
 
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%
 
 
 
看到这个题知道是背包问题  但是就是想不起来背包怎么写   看网上的大神哇一点就通啊    
这道题就是算至少被一个学校录取   就直接让1减去他不被任何学校录取就行了
dp就直接表示至少被一个学校录取的概率   
啊直接上代码
 
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue> using namespace std; #define N 50000
int a[N],dp[N];
int main()
{
int n,m,c[N];
double w[N],dp[N];
while(scanf("%d %d",&n,&m),n+m)
{
for(int i=;i<=m;i++)
{
scanf("%d %lf",&c[i],&w[i]);
}
memset(dp,,sizeof(dp));
for(int i=;i<=m;i++)
{
for(int j=n;j>=c[i];j--)
{
dp[j]=max(dp[j],(-(-dp[j-c[i]])*(-w[i])));
}
}
printf("%.1lf%%\n",dp[n]*);
}
return ;
}

I NEED A OFFER!---hdu1203(01背包)的更多相关文章

  1. HDU 1203 I NEED A OFFER!(01 背包DP)

    点我看题目 题意 : 中文题不详述. 思路 :类似于01背包的DP,就是放与不放的问题,不过这个要求概率,至少得到一份offer的反面就是一份也得不到,所以先求一份也得不到的概率,用1减掉就可以得到所 ...

  2. HDU1203_I NEED A OFFER!【01背包】

    I NEED A OFFER! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  3. HDU 1203 I NEED A OFFER!(01背包+简单概率知识)

    I NEED A OFFER! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Sub ...

  4. 题解报告:hdu 1203 I NEED A OFFER!(01背包)

    Problem Description Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了.要申请国外的任何大学,你都要交纳一定的申请费用 ...

  5. SCU 2941 I NEED A OFFER!(01背包变形)

    I NEED A OFFER!     64bit IO Format: %lld & %llu Submit Status Description Description Speakless ...

  6. hdu 1203 I NEED A OFFER!(01背包)

    题意:"至少一份offer的最大概率".即求拿不到offer的最小概率 (得到offer的最大概率 = 1 - 反例的最小概率). 状态转移方程:dp[j]= Min(dp[j], ...

  7. HDU 1203 I NEED A OFFER (01背包&&概率dp)

    M - I NEED A OFFER! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  8. HDU1203(01背包)

    I NEED A OFFER! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  9. HDU1203(01背包变形)

    I NEED A OFFER! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   D ...

随机推荐

  1. centos系统iptables使用帮助

    #如果只是想屏蔽IP的话“开放指定的端口”可以直接跳过.#屏蔽单个IP的命令是iptables -I INPUT -s 123.45.6.7 -j DROP#封整个段即从123.0.0.1到123.2 ...

  2. Centos 6 安装python2.7.6

    centos 是自带python的.但是版本稍微旧一些.搞python开发,肯定要用新一点的稳定版.所以,要升级一下python. 先去python主站下载python的源码包:Python-2.7. ...

  3. QProcess执行带管道的shell命令

    QStringList options; options << "-c" << "ls -l | grep a | sort"; QPr ...

  4. 做OJ项目时遇到的坑

    1.js代码写在Dom加载前,导致highcharts在ie8能够显示,而ie高版本和其他浏览器不能显示 我的理解:由于IE8和其他浏览器的js解析机制不同,ie8是在等dom全部加载完才开始执行js ...

  5. Halcon学习笔记1

    转:https://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html 机器视觉工程应用主要可划分为硬件和软件两大部分. 硬件:工程应 ...

  6. activitymq 集群构建

    测试zk是否正常 [root@node2 bin]# cd /zk/1/zookeeper-3.4.10/bin/ [root@node2 bin]# ./zkCli.sh -server 10.50 ...

  7. 如何安装多个pip包

    要在命令行上安装多个软件包,只需将它们作为以空格分隔的列表传递,例如: pip install wsgiref boto  

  8. Calling method 'get' is not valid without an active transaction

    在进行使用注解来配置Spring和Hibernate的整合的时候, 遇到了这个问题, 它的意思是说在调用'get'方法的时候,没有活动的事务. 原因分析: Hibernate强制要求在进行数据库操作的 ...

  9. Chrome浏览器商店安装的插件保存到本地

    Chrome自67版本开始,不能从第三方下载插件拖动安装,要么就是以前的方法安装修改为zip格式,会有报错(报错如下图),强迫症肯定忍不了报错的:按照网上说法,是第三方插件的压缩算法和Chrome商店 ...

  10. JavaSE-03 Java选择结构

    学习要点 if选择结构 switch选择结构 if选择结构 单分支if选择结构 语法结构 应用场合 问题:如果王小强的Java考试成绩大于98分,小强就能获得一个iphone8作为奖励. 复杂条件下的 ...