LightOJ 1079 Just another Robbery (01背包)
题意:Harry Potter要去抢银行(wtf???),有n个银行,对于每个银行,抢的话,能抢到Mi单位的钱,并有pi的概率被抓到。在各个银行被抓到是独立事件。总的被抓到的概率不能超过P。
解题关键:如果考虑各种情况存在某一次被抓住的概率,相当于是取 并集,这个比较麻烦。然而,n个独立事件都不被抓住的概率,相当于是取 交集,直接把要考虑到的事件的不被抓住的概率乘到一起就好了。这样就能把这道题转化为01背包的问题了。
不被抓概率!~物品体积 (不被抓概率不低于某阈值,物品总体积不高于某阈值)
所抢金额~物品价值 (显然)
#include<bits/stdc++.h>
using namespace std;
typedef long long LL; const double eps=1e-; int n;
double P,Q; //Q表示,可行域中,最小的不被抓住的概率
int m[];
double p[];
double q[];
double dp[]; int main()
{
int T,kase=;
scanf("%d",&T);
while(T--)
{
scanf("%lf%d",&P,&n);
Q=-P;
for(int i=;i<n;i++)
{
scanf("%d%lf",&m[i],&p[i]);
q[i]=-p[i];
}
memset(dp,,sizeof(dp));
dp[]=;
for(int i=;i<n;i++)
{
for(int j=;j>=m[i];j--)
{
if(dp[j-m[i]]*q[i]<Q-eps) continue;
dp[j]=max(dp[j],dp[j-m[i]]*q[i]);
}
}
for(int i=;i>=;i--)
if(dp[i]>eps)
{
printf("Case %d: %d\n",++kase,i);
break;
}
}
}
LightOJ 1079 Just another Robbery (01背包)的更多相关文章
- LightOJ 1079 Just another Robbery (01背包)
题意:给定一个人抢劫每个银行的被抓的概率和该银行的钱数,问你在他在不被抓的情况下,能抢劫的最多数量. 析:01背包,用钱数作背包容量,dp[j] = max(dp[j], dp[j-a[i] * (1 ...
- LightOJ 1079 Just another Robbery 概率背包
Description As Harry Potter series is over, Harry has no job. Since he wants to make quick money, (h ...
- LightOJ - 1079 Just another Robbery —— 概率、背包
题目链接:https://vjudge.net/problem/LightOJ-1079 1079 - Just another Robbery PDF (English) Statistics ...
- lightoj 1079 Just another Robbery
题意:给出银行的个数和被抓概率上限.在给出每个银行的钱和抢劫这个银行被抓的概率.求不超过被抓概率上线能抢劫到最多的钱. dp题,转移方程 dp[i][j] = min(dp[i-1][j] , dp[ ...
- (概率 01背包) Just another Robbery -- LightOJ -- 1079
http://lightoj.com/volume_showproblem.php?problem=1079 Just another Robbery As Harry Potter series i ...
- lightoj 1125【01背包变性】
题意: 从n个数里选出m个来,还要使得这m个数之和被d整除. 给一个n和q,再给n个数,再给q个询问,每个询问包含两个数,d,m; 对于每个case输出每个q个询问的可行的方案数. 思路: 每个数只能 ...
- 1079 - Just another Robbery
1079 - Just another Robbery PDF (English) Statistics Forum Time Limit: 4 second(s) Memory Limit: 3 ...
- hdu 2955 01背包
http://acm.hdu.edu.cn/showproblem.php?pid=2955 如果认为:1-P是背包的容量,n是物品的个数,sum是所有物品的总价值,条件就是装入背包的物品的体积和不能 ...
- Robberies(简单的01背包 HDU2955)
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
随机推荐
- springSecurity总结
springSecurity总结: 一.Spring security框架简介 1.简介 一个能够为基于Spring的企业应用系统提供声明式的安全訪问控制解决方式的安全框架(简 ...
- format和urlencode的使用对比
一:format的基本语法使用 基本语法是通过 {} 和 : 来代替以前的 % . format 函数可以接受不限个参数,位置可以不按顺序. 例如: >>>"{} {}&q ...
- Vue知识整理4:v-html标签
可以在数据绑定中使用html标签,这样在变量里可以使用html标签输出结果,如下所示:
- 001-spring boot概述与课程概要
一.Spring Boot介绍 Spring Boot的目的在于创建和启动新的基于spring框架的项目.Spring boot会选择最适合的Spring 子项目和第三方开源库进行整合.大部分Spri ...
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_01 Collection集合_4_Iterator接口介绍
collection集合中是没有索引的,不能使用普通的循环来便利它. 也是在util的包中 先判断集合中有没有元素 有元素就取出来,用next方法 使用接口来接受一个实现类,这就是多态
- js变量和数据类型
- CTF夺旗赛丨网络内生安全试验场第四季圣诞赛明日开赛!
期待许久的圣诞狂欢就要来喽 <Jingle bell>欢快的旋律 在耳边翩翩起舞 白胡子老爷爷骑着麋鹿准时来送礼物 2019圣诞节 i 春秋做你的圣诞老人 参加CTF欢乐圣诞赛 你提交答案 ...
- Count on a tree SPOJ 10628 主席树+LCA(树链剖分实现)(两种存图方式)
Count on a tree SPOJ 10628 主席树+LCA(树链剖分实现)(两种存图方式) 题外话,这是我第40篇随笔,纪念一下.<( ̄︶ ̄)↗[GO!] 题意 是说有棵树,每个节点上 ...
- void die(const char *msg)
void die(const char *msg) { perror(msg); exit(errno); }
- mysql常见的查询语句
select * from 表名 查询此表所有数据 select * from 表名 where 字段名 > 判断条件 查询某表中的某字段符合条件的数据 select * f ...