Problem Description
The aspiring
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.
Input
The first line
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 .
Output
For each test
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.
Sample Input
3
0.04
3
1
0.02
2
0.03
3
0.05
0.06
3
2
0.03
2
0.03
3
0.05
0.10
3
1
0.03
2
0.02
3
0.05
Sample Output
2
4
6
题意:ROY想测试银行的安全系数;给你I个银行的钱数和被抓的概率;让你求被抓的条件下,能抢到的最多钱数;
解题思路:一开始想的是就是正着求,但是太麻烦了,还有交集,看了论坛上的留言才知道翻着求很简单;
以前做的DP都是累加,这个是累乘,剩下的就是01背包问题了;
感悟:冷静一下可能还有思路;
代码:
#include

#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的更多相关文章

  1. 1254 Problem V

    问题 V: 光棍的yy 时间限制: 1 Sec  内存限制: 128 MB 提交: 42  解决: 22 [提交][状态][讨论版] 题目描述 yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见1 ...

  2. Problem V: 零起点学算法20——输出特殊值II

    #include<stdio.h> int main() { printf("\\n"); ; }

  3. 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 ...

  4. 菜鸟带你飞______DP基础26道水题

    DP 158:11:22 1205:00:00   Overview Problem Status Rank (56) Discuss Current Time: 2015-11-26 19:11:2 ...

  5. [kuangbin带你飞]专题十四 数论基础

            ID Origin Title   111 / 423 Problem A LightOJ 1370 Bi-shoe and Phi-shoe   21 / 74 Problem B ...

  6. Simple Addition

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=31329#problem/V 使用题目所给函数,单单从某一个数字来看,就是直接求这个数各个 ...

  7. Fibinary Numbers

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30506#problem/V 题意:从右向左,每一个位数,分别表示一个fibonacci数 ...

  8. Maximum GCD(fgets读入)

    Maximum GCD https://vjudge.net/contest/288520#problem/V Given the N integers, you have to find the m ...

  9. HDU 4513 吉哥系列故事――完美队形II(Manacher)

    题目链接:cid=70325#problem/V">[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形I ...

随机推荐

  1. iOS Storyboard约束详解

    链接:http://www.jianshu.com/p/b88c65ffc3eb 约束,就是指--此处略去1万字--都懂的,就不说了.直接进入实战环节. 本文的控件约束都是围绕着UITableView ...

  2. java集合系列——Map介绍(七)

    一.Map概述 0.前言 首先介绍Map集合,因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的). 1:介绍 将键映射到 ...

  3. 【JVM命令系列】jstat

    命令基本概述 Jstat是JDK自带的一个轻量级小工具.全称"Java Virtual Machine statistics monitoring tool",它位于java的bi ...

  4. 记XDCTF的misc之旅---base64隐写

    bWFpbigpe2ludCBpLG5bXT17KCgoMSA8PDEpPDwgKDE8PDEpPDwoMTw8Cm==ICAgICAgIDEpPDwoMTw8KDE+PjEpKSkrKCgxPDwx ...

  5. 每周分享一 之 webSocket

    一:什么是webSocket ? webSocket是HTML5出的新协议,WebSocket协议支持,在受控环境中运行不受信任代码的客户端与选择了该代码通信的远程主机之间进行双向通信. 简单翻译一下 ...

  6. 基于maven创建和部署Webx项目

    1.准备工作 下载 Webx Maven 项目的目录结构Artifact插件. archetype-webx-quickstart-1.0.tar.gz插件:http://central.maven. ...

  7. Suneast & Daxia (规律)

    Suneast & Daxia Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u ...

  8. Template7插入动态模板

    要完成的效果如下图 其中下面添加出来的订单号和订单总价可以看作是接口请求的数据 实现步骤: 1 下载template7:https://github.com/nolimits4web/template ...

  9. python 的日志logging模块学习

    1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info messa ...

  10. ionic构建APP--简单操作实现APP制作

    ionic--基于AngularJS的app框架 1安装ionic .HBuilder创建APP项目,导入ionic的css,js(fonts)文件. .导入ionic.css和ionic.bundl ...