hdu 2599 Robberies

原创 2017年01月03日 23:28:49

这道题目我也是无语了,自己跟智障一样。非常明显的01背包题目,但是要注意的是这个概率是相乘出来得到的逃脱概率而不是直接相加的,同时最后要注意精度,我也是看了眼界,就是因为这个WA3次。

题目链接:https://vjudge.net/problem/HDU-2955

#include <cstdio>
#include <cstring>
#include <iostream>

using namespace std;

const int inf = 0x3f3f3f3f;
const int maxn = 105;
double sum;
int cntn , s;
double dp[10005];

struct Bank {
	double risk;
	int money;
	Bank (double a=0 , int b=0) : risk(a),money(b) {}
}bank[maxn];

void solve () {
	for (int i = 1 ; i <= s ; i++)
		dp[i] = -1000000;
	dp[0] = 1;
	for (int i = 1 ; i <= cntn ; i++) {
		for (int j = s ; j >= bank[i].money ; j--)
			dp[j] = max(dp[j] , dp[j-bank[i].money]*bank[i].risk);
	} 
	for (int i = s ; i >= 0 ; i--)
		if (dp[i] - (1-sum) > 0.000000001) {
			printf("%d\n", i);
			break;
		}
}

int main () {
	int ncase;
	scanf("%d" , &ncase);
	while (ncase--) {
		memset(bank, 0, sizeof(bank));
		s = 0;
		scanf("%lf %d" , &sum , &cntn);
		for (int i = 1 ; i <= cntn ; i++) {
			double risk;
			int money;
			scanf("%d %lf" , &money , &risk);
			bank[i] = Bank(1-risk , money);
			s += money;
		}
		solve();
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

hdu2955 Robberies 01背包 dp

链接:点我 题意:一个强盗要去抢劫银行,对于每个银行来说,都有一个不被抓的概率p,和能抢劫到的钱数money,每个银行最多只可以被抢劫一次。问在不被抓的总概率P下,怎样得到最大价值的钱数。 分析:...
  • liuqiyao_01
  • liuqiyao_01
  • 2013年04月01日 19:15
  • 3249

hdu2955 Robberies(01背包)

这题我是看题解做的。。。 刚开始一看浮点数遍历,乘100后再算果断WA(和我想的一样)。然后就不会了,看了才知道要转化背包,而且这个概率算的话是相乘,求的是最大逃跑概率,真是从头错到尾啊。。。还有...
  • Flynn_curry
  • Flynn_curry
  • 2016年03月21日 22:18
  • 2198

hdu(2955)——Robberies

题意: 现在一个人想去抢劫银行,如果他被抓的概率低于P的话,那么他就是安全的。 然后给出N,代表他想抢劫的银行的个数,然后N行,有Mj,Pj,代表的是银行有Mj这么多钱,然后被抓的概率是Pj。 然后问...
  • ACMer_hades
  • ACMer_hades
  • 2015年09月20日 23:00
  • 405

HDU2955_Robberies【01背包】

Robberies 题目大意:有一个强盗要去几个银行偷盗,他既想多投点钱,又想尽量不被抓到。已知各个银行 的金钱数和被抓的概率,以及强盗能容忍的最大被抓概率。求他最多能偷到多少钱? 思路:背包问题,原...
  • u011676797
  • u011676797
  • 2014年10月17日 19:33
  • 1828

HDU 2955 Robberies 0-1背包 浮点数处理

这道题是在不被抓的概率下获取钱最多
  • gg_gogoing
  • gg_gogoing
  • 2014年11月06日 23:43
  • 451

hdu 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】(转)

HDU 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】 Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955      ...
  • WangPegasus
  • WangPegasus
  • 2013年09月01日 18:02
  • 1348

bzoj2599【IOI2011】Race

树的点分治
  • AaronGZK
  • AaronGZK
  • 2016年05月13日 00:26
  • 1729

【hdu】【Robberies】

Robberies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota...
  • u013200703
  • u013200703
  • 2015年07月29日 10:19
  • 210

HDU Robberies

The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually g...
  • Viscu
  • Viscu
  • 2016年07月28日 19:23
  • 149

BZOJ2599: [IOI2011]Race

点分 我是用map存的可能多了个log 但是跑得过去233333#include #include #include #include #include #include using namesp...
  • liutian429073576
  • liutian429073576
  • 2016年03月13日 07:19
  • 293
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu 2599 Robberies
举报原因:
原因补充:

(最多只允许输入30个字)