HDU(2955)Robberies (0-1背包)
来源:互联网 发布:淘宝店招设计素材 编辑:程序博客网 时间:2024/05/29 02:50
/*
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2955
题意:Roy想要抢劫银行,每家银行多有一定的金额和被抓到的概率,知道Roy被抓的最
大概率P,求Roy在被抓的情况下,抢劫最多。
分析:考虑其反面。被抓概率可以转换成安全概率,Roy的安全概率大于1-P时都是安全的。抢劫的金
额为0时,肯定是安全的,所以d[0]=1;其他金额初始为最危险的所以概率全为0;
注意:不要误以为精度只有两位。
*/
#include<stdio.h>#include<iostream>#include<stdlib.h>#include<string.h>#include<math.h>#include<string>#include<algorithm>#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;const int maxn = 105;double dp[maxn*maxn];int weight[maxn*maxn];double p[maxn];int main(){ int t; scanf("%d",&t); while(t--){ double m; int n; scanf("%lf%d",&m,&n); m = 1-m; int sum_w = 0; for(int i = 0;i < n;i++){ scanf("%d%lf",weight+i,p+i); p[i] = 1 - p[i]; sum_w += weight[i]; } memset(dp, 0, sizeof(dp)); dp[0] = 1; for(int i = 0;i < n;i++) for(int j = sum_w;j >= weight[i];j--) dp[j] = max(dp[j],dp[j-weight[i]]*p[i]); for(int i = sum_w;i >= 0;i--) if(dp[i] - m > 1e-8){ printf("%d\n",i); break; } } return 0;}
0 0
- hdu 2955 dp(0,1背包) Robberies
- hdu 2955 Robberies(0/1背包)
- hdu 2955 Robberies (0 1背包)
- HDU(2955)Robberies (0-1背包)
- HDU 2955(Robberies)0-1背包问题
- hdu 2955 Robberies(0/1背包)
- hdu 2955 Robberies (0-1背包)
- HDU 2955 Robberies (0-1背包)
- Robberies - HDU 2955 背包
- hdu 2955 Robberies 背包
- HDU 2955 Robberies (想法题&0-1背包)
- HDU 2955 Robberies 0-1背包 浮点数处理
- HDU 2955 Robberies(0-1背包问题的简单变形)
- HDU ACM 2955 Robberies->0-1背包问题
- 动态规划:HDU-2955-0-1背包问题:Robberies
- hdu 2955 01 背包 Robberies
- hdu 2955 Robberies--01背包
- Hdu 2955 Robberies//01背包
- 程序的可移植性——字长/不透明数据/数据对齐/大小端
- HDU(1536)S-Nim (博弈)
- HDU(1867)A + B for you again (KMP)
- Codeforces Round #106 (Div. 2) 149/E E. Martian Strings
- HDU(4522) 湫湫系列故事——过年回家
- HDU(2955)Robberies (0-1背包)
- Codeforces Round #226 (Div. 2)B. Bear and Strings
- Codeforces Round #226 (Div. 2)A. Bear and Raspberry
- 黑马程序员---高新技术之javabean和泛型
- 泰国法院判决中泰“大米换高铁”项目违宪
- 十步完全理解SQL
- box2d 平移连接器
- 写给新接触linq的同学(二)lamda从零来理解
- 为macbook pro安装内存条