博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hdu 1203 I NEED A OFFER!
阅读量:4598 次
发布时间:2019-06-09

本文共 1102 字,大约阅读时间需要 3 分钟。

题意很直观了, 中文题。

至少得到一份offer的概率就等于 1 - 一份offer都得不到的概率。

背包问题 , 求得到offer概率最大,也就是一份都得不到的概率最小。

将每一份offer得不到的概率视为权值 , 重量均为所投offer所用美元

那么dp[i] 就表示用了i美元时 , 得不到offer的最小概率

最终结果就是1 - dp[n]

代码如下:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 using namespace std;14 #define MAXN 1001015 #define INF 0x3f3f3f3f16 #define MOD 100000000717 #define eps 1e-618 #define LL long long19 double dp[MAXN];20 int w[MAXN];21 double v[MAXN];22 int n , m;23 void solve()24 {25 for(int i = 0; i < m; i ++)26 scanf("%d %lf",&w[i] , &v[i]);27 for(int i = 0; i <= n; i ++) dp[i] = 1;28 for(int i = 0; i < m; i ++)29 for(int j = n; j >= w[i]; j --)30 dp[j] = min(dp[j] , dp[j - w[i]] * (1.0 - v[i])); 31 printf("%.1lf%%\n",(1.0 - dp[n]) * 100);32 }33 34 int main()35 {36 while(scanf("%d %d",&n,&m) && (n+m))37 {38 solve();39 }40 return 0;41 }
View Code

 

转载于:https://www.cnblogs.com/By-ruoyu/p/4467642.html

你可能感兴趣的文章
局域网内访问机器时出现“未授予在次计算机上的请求登陆类型”
查看>>
硬币组合问题
查看>>
(9)模板层 - templates(模板语言、语法、取值、过滤器、变量的使用)
查看>>
P3469 [POI2008]BLO-Blockade
查看>>
P1171 售货员的难题
查看>>
DevOps之持续交付
查看>>
有趣的数学(一)
查看>>
迟来的2013年总结及算法工程师/研究员找工作总结
查看>>
java面向对象中的关键字
查看>>
网络类型IPv4和IPv6什么意思?区别?
查看>>
6周学习计划,攻克JavaScript难关(React/Redux/ES6 etc.)
查看>>
大对象堆及.NET垃圾回收器的改进
查看>>
utf-8引发的页面空白
查看>>
MicroPHP 2.2.0 发布
查看>>
Mysql 语句
查看>>
setState 和 bloc 是仇家
查看>>
jmeter之IP欺骗
查看>>
Ubuntu配置OpenStack 二:配置时间同步NTP和安装数据库Maridb以及问题总结
查看>>
zepto源码--compact、flatten、camelize、dasherize、uniq--学习笔记
查看>>
MyCat:开源分布式数据库中间件
查看>>