Robberies HDU - 2955
直接说题意吧。(什么网友bb了半天题都说不清楚)
给了 P 表示大于这个概率一定被抓住。则P表示被抓住的概率。N表示现在有的银行,pi表示被抓的概率嘛。
然后,就看数学了。肯定不能算被抓的概率啊。因为,如果你第一个就被抓了,后面的概率还用算吗,或则说,这样的计算不符合01
背包的特点,那么我们就想一下,作为一个背包的容量,应该是做加减法,而不是像概率那样做乘除啊。那么我们就用银行的价值作为
物体的体积,而概率(1-被抓的概率=逃跑的概率)作为物品的价值啊。为什么转化为逃跑的概率呢?因为正面肛不动啊!这样我们就得到了
价值从小到大的一系列背包啊,不过概率也是递减的(抢的银行越多,逃跑的概率越小啊),当我们找到第一个小于(1-P)也是就是他自己的极限逃跑概率时,在之间的价值中找个最大的就可以了
ac代码如下:
#include<cstdio>
#include<cstring>
#define max(a, b) (a)>(b)?(a):(b)
#define MAXN int(1e4)
double dp[MAXN + ], p[MAXN];
int w[MAXN];
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
memset(dp, , sizeof(dp));
double pp; int n, v=;
scanf("%lf%d", &pp, &n);
for (int i = ; i <= n; ++i)
{
scanf("%d%lf", &w[i], &p[i]);
v += w[i];
}
dp[] = ;
for (int i = ; i <= n; ++i)
for (int j = v; j >= w[i]; --j)
dp[j] = max(dp[j], dp[j - w[i]] * ( - p[i]));
int maxx = ;
for (int i = ; i <= v;++i)
if (dp[i]>=(-pp))
maxx = max(i, maxx);
printf("%d\n", maxx);
}
}
Robberies HDU - 2955的更多相关文章
- 【01背包变形】Robberies HDU 2955
http://acm.hdu.edu.cn/showproblem.php?pid=2955 [题意] 有一个强盗要去几个银行偷盗,他既想多抢点钱,又想尽量不被抓到.已知各个银行 的金钱数和被抓的概率 ...
- Robberies(HDU 2955 DP01背包)
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- Robberies hdu 2955 01背包
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- 1 . Robberies (hdu 2955)
The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually g ...
- HDU 2955 Robberies 背包概率DP
A - Robberies Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submi ...
- [HDU 2955]Robberies (动态规划)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955 题意是给你一个概率P,和N个银行 现在要去偷钱,在每个银行可以偷到m块钱,但是有p的概率被抓 问 ...
- HDU 2955 Robberies(DP)
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=2955 题目: Problem Description The aspiring Roy the Rob ...
- hdu 2955 Robberies (01背包)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955 思路:一开始看急了,以为概率是直接相加的,wa了无数发,这道题目给的是被抓的概率,我们应该先求出总的 ...
- HDU 2955 Robberies(0-1背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2955 题意:一个抢劫犯要去抢劫银行,给出了几家银行的资金和被抓概率,要求在被抓概率不大于给出的被抓概率的情况下, ...
随机推荐
- 分布式计算框架Spark
Apache Spark是一个开源分布式运算框架,最初是由加州大学柏克莱分校AMPLab所开发. Hadoop MapReduce的每一步完成必须将数据序列化写到分布式文件系统导致效率大幅降低.Spa ...
- SPI Flash(W25Q16DV) 基本操作
读取厂家\设备 ID 发送 90H 指令,再发送 00h 的地址,然后接收即可. 代码如下: void SPIFlashReadID(int *pMID, int *pDID) { SPIFlash_ ...
- dom操作------获取长/宽/距离等值的若干方法
1.offsetLeft:获取元素边框以外至文档顶的距离:若其祖先元素有定位属性position则返回值为元素到该定位元素的距离,不包括祖先元素的三宽(padding,border,margin),且 ...
- vue.js 使用时间组件 日期少一天的问题
<el-form :inline="true" class="demo-form-inline padding-top-20"> <el-fo ...
- 【操作系统】二、JVM线程与Linux内核线程的映射
Linux从内核2.6开始使用NPTL (Native POSIX Thread Library)支持,但这时线程本质上还轻量级进程. Java里的线程是由JVM来管理的,它如何对应到操作系统的线程是 ...
- The Most Simple Introduction to Hypothesis Testing
https://www.youtube.com/watch?v=UApFKiK4Hi8
- 【读书笔记】iOS-设计模式
一个可复用的解决方案,用于处理特定场景下的常见问题.一种设计模式并不是一个可以直接转化为代码的已完工设计.它是对于如何解决问题的一种描述或者模板,可以用在许多不同的场合. 参考资料:<iOS W ...
- struts2文件上传大小限制问题小结(引用)
最后解决办法: 页面js控制上传文件的大小,在页面进行控制.如下代码 inputs是所有文本上传input DOM //名称信息 var nameStr=''; //大小信息 var sizeStr= ...
- Linux 操作系统下的环境变量设置
Linux下的环境变量设置 by:授客 QQ:1033553122 1. 问题描述 linux输入命令时经常会出现提示:xxx:Command not found 2. 原因分析 Command ...
- Linux 学习笔记之超详细基础linux命令 Part 1
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 说明:主要是在REHL Server 6操作系统下进行的测试 --字符界面虚拟终端与图形界面之间的切 方法:[ ...