暑期dp46道(34)--HDOJ 1203 01背包
来源:互联网 发布:快手用户数据 编辑:程序博客网 时间:2024/05/22 08:24
题目链接:HDOJ 1203
题解:01背包问题,注意至少拿到一个offer的概率 b:一个offer拿不到的概率a,则b=1-a;
所以
dp[j] = Max(dp[j], 1-(1- dp[j - c[i]])*(1 - w[i]));
代码:
#include<cstdio>#include<cstring>#include<string>#define debug 0#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)#define REP(o) for(int i=1;i<=o;i++)const int maxn = 10000 + 5;int n, m;int c[maxn]; double w[maxn], dp[maxn];void Do(){for (int i = 1; i <= n; i++)for (int j = m; j >= c[i]; j--){dp[j] = Max(dp[j], 1 - (1 - dp[j - c[i]])*(1 - w[i]));}printf("%.1f%%\n", 100 * dp[m]);}int main(){#if debugfreopen("in.txt", "r", stdin);#endif//debugwhile (~scanf("%d%d", &m, &n)){if (n == 0 && m == 0)break;M(dp);REP(n){scanf("%d%lf", &c[i], &w[i]);}Do();}return 0;}
1 0
- 暑期dp46道(34)--HDOJ 1203 01背包
- 暑期dp46道(10)HDOJ 2602 Bone Collect 01背包
- 暑期dp46道(35)--HDOJ 2159 FATE 背包问题
- 暑期dp46道(27)--HDOJ 3008 Warcraft
- 暑期dp46道(36)--HDOJ 2577
- 暑期dp46道(37) HDOJ 2844 COINS
- 暑期dp46道(44)--HDOJ 1058
- 暑期dp46道(46)--HDOJ 1069
- 暑期dp46道(12)--HDOJ 2191 多重背包+二进制优化
- 暑期dp46道(23)HDOJ 1059 Dividing 多重背包+二进制优化
- 暑期dp46道(32)--hdoj 1171 Big Event in HDU 多重背包:
- 暑期dp46道(5)hdoj 1421 搬寝室s
- 暑期dp46道(6)抢劫Robberies ——HDOJ 2955
- 暑期dp46道(21)HDOJ 2059 龟兔赛跑
- 暑期dp46道(22)--HDOJ 1158 Employment Planning
- 暑期dp46道(25)--HDOJ 1300 Pearls
- 暑期dp46道(30) HDOJ 1227 Fast Food
- 暑期dp46道(33)--HDOJ 1176 免费馅饼 类树塔:
- IAR FOR AVR中精确软件延时方法
- Echarts使用心得
- tcp三次握手建立连接,四次握手关闭连接
- 百度云非 VIP如何作弊加速?
- POJ 3264 Balanced Lineup(RMQ)
- 暑期dp46道(34)--HDOJ 1203 01背包
- 51NOD1092—— 回文字符串(区间dp)
- 符号微积分
- android自定义对话框
- ROI与CPC、CPM有什么关系
- Palindrome Number_Leetcode_#9
- Expression表达式资料
- 数据结构实验之图论八:欧拉回路
- Python 中yield的原理分析