Problem V
Roy the Robber has seen a lot of American movies, and knows that
the bad guys usually gets caught in the end, often because they
become too greedy. He has decided to work in the lucrative business
of bank robbery only for a short while, before retiring to a
comfortable job at a university.
V" title="Problem V">For a few months now, Roy has been assessing the security of
various banks and the amount of cash they hold. He wants to make a
calculated risk, and grab as much money as possible.
His mother, Ola, has decided upon a tolerable probability of
getting caught. She feels that he is safe enough if the banks he
robs together give a probability less than this.
of input gives T, the number of cases. For each scenario, the first
line of input gives a floating point number P, the probability Roy
needs to be below, and an integer N, the number of banks he has
plans for. Then follow N lines, where line j gives an integer Mj
and a floating point number Pj .
Bank j contains Mj millions, and the probability of getting caught
from robbing it is Pj .
case, output a line with the maximum number of millions he can
expect to get while the probability of getting caught is less than
the limit set.
Notes and Constraints
0 < T <= 100
0.0 <= P <= 1.0
0 < N <= 100
0 < Mj <= 100
0.0 <= Pj <= 1.0
A bank goes bankrupt if it is robbed, and you may assume that all
probabilities are independent as the police have very low
funds.
3
0.02
0.03
0.05
3
0.03
0.03
0.05
3
0.03
0.02
0.05
#include
#include
#define maxn 105
using namespace std;
double dp[maxn*maxn],hold[maxn*maxn];
int cost[maxn*maxn];
int main()
{
//freopen("in.txt", "r", stdin);
int
t,n,total_cost;
double
p;
scanf("%d",&t);
while(t--)
{
scanf("%lf %d",&p,&n);
p=1-p;//安全逃走的概率
total_cost=0;
for(int i=0;i
{
scanf("%d %lf",&cost[i],&hold[i]);
hold[i]=1-hold[i];
total_cost+=cost[i];
}
for(int i=1;i<=total_cost;i++)
dp[i]=0;
dp[0]=1;//什么也没偷安全的概率就是1;
for(int i=0;i
for(int j=total_cost;j>=cost[i];j--)
{
dp[j]=max(dp[j],dp[j-cost[i]]*hold[i]);
}
for(int i=total_cost;i>=0;i--)
if(dp[i]-p>0.00000000001)
{
printf("%d\n",i);
break;
}
}
return
0;
}
Problem V的更多相关文章
- 1254 Problem V
问题 V: 光棍的yy 时间限制: 1 Sec 内存限制: 128 MB 提交: 42 解决: 22 [提交][状态][讨论版] 题目描述 yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见1 ...
- Problem V: 零起点学算法20——输出特殊值II
#include<stdio.h> int main() { printf("\\n"); ; }
- 2015-2016 ACM-ICPC Pacific Northwest Regional Contest (Div. 2)V - Gears
Problem V | limit 4 secondsGearsA set of gears is installed on the plane. You are given the center c ...
- 菜鸟带你飞______DP基础26道水题
DP 158:11:22 1205:00:00 Overview Problem Status Rank (56) Discuss Current Time: 2015-11-26 19:11:2 ...
- [kuangbin带你飞]专题十四 数论基础
ID Origin Title 111 / 423 Problem A LightOJ 1370 Bi-shoe and Phi-shoe 21 / 74 Problem B ...
- Simple Addition
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=31329#problem/V 使用题目所给函数,单单从某一个数字来看,就是直接求这个数各个 ...
- Fibinary Numbers
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30506#problem/V 题意:从右向左,每一个位数,分别表示一个fibonacci数 ...
- Maximum GCD(fgets读入)
Maximum GCD https://vjudge.net/contest/288520#problem/V Given the N integers, you have to find the m ...
- HDU 4513 吉哥系列故事――完美队形II(Manacher)
题目链接:cid=70325#problem/V">[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形I ...
随机推荐
- Postman 串行传参和动态传参详解
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 用Postman做接口测试的时候,要把多条用例一起执行,就需要把用例连接起来,一次性执行 目录 串行传参 动态传参 使用 ...
- WebSocket 开发模拟客户端与有游戏服务器通信
WebSocket 客户端测试功能 websocket是有标准的通信协议,在h2engine服务器引擎中继承了websocket通信协议,使用websocket通信协议的好处是很多语言或框架都内置了w ...
- PHP中public、protected、private权限修饰符
PHP中有三种访问修饰符 默认是public public(公共的.默认) protected(受保护的) private(私有的) 访问权限 public protected private 类内 ...
- js如何判断一个对象为空
今天碰到一个问题如何判断一个对象为空? 总结的方法如下: 1.使用jquery自带的$.isEmptyObject()函数. var data={}; console.log($.isEmptyObj ...
- oracle 行转列 列转行
行转列 这是一个Oracle的列转行函数:LISTAGG() 先看示例代码: with temp as( select 'China' nation ,'Guangzhou' city from du ...
- 数据分析前戏:ipython使用技巧(上)
不一定非得使用Jupyter Notebook,试试ipython命令行 安装 ipython 我只试过Windows 10环境下的. 1.安装python安装包之后,应该就有ipython了. 2. ...
- JavaWeb(五)之JSTL标签库
前言 前面介绍了EL表达式,其实EL表达式基本上是和JSTL核心标签库搭配一起使用才能发挥效果的.接下来让我们一起来认识一下吧! 在之前我们学过在JSP页面上为了不使用脚本,所以我们有了JSP内置的行 ...
- 配置和启动Kubernetes服务
安装etcd服务 下载安装包 wget https://github.com/coreos/etcd/releases/download/v3.1.3/etcd-v3.1.3-linux-amd64. ...
- binary
模块说明 函数经过优化,比等价Erlang实现(比如位语法)更快,更节省内存 大部分可用位语法等价实现 模块的实现根据EEP(Erlang Enhancement Proposal)31 模块只处理面 ...
- DataGridView的使用记录
首先初始化 1 this.CheckView.Columns.Clear(); 2 DataGridViewComboBoxColumn dcomo = new DataGridViewComboBo ...