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. 100%解决ios上audio不能自动播放的问题

    由于ios的安全机制问题,不允许audio和video自动播放,所以想要使audio标签自动播放那是实现不了的,即使给play()也是播放不了. 解决方法: 首先,创建audio标签:<audi ...

  2. WebApi实现原理解析笔记

    这是我看过WebApi实现代码后的一些总结,一方面加深自己的记忆,另外也希望能够帮助大家更深入的了解WebApi. 注:暂时没有好好的整理,可能有些晦涩难懂. Webapi 控制器类必须实现IHttp ...

  3. 第一个ExtJS练习(添加用户面板)

    1.[准备] 我是在visual studio里面建立了一个asp.net MVC项目,然后导入ExtJS必要的包,然后写的. ExtJS5.1版本下载:https://pan.baidu.com/s ...

  4. Python NLP入门教程

    本文简要介绍Python自然语言处理(NLP),使用Python的NLTK库.NLTK是Python的自然语言处理工具包,在NLP领域中,最常使用的一个Python库. 什么是NLP? 简单来说,自然 ...

  5. Laravel框架使用查询构造器实现CURD

    一.什么是查询构造器? ①Laravel 查询构造器(query Builder)提供方便,流畅的接口,用来建立及执行数据库查找语法 ②使用PDO参数绑定,以保护应用程序免于SQL注入因此传入的参数不 ...

  6. JAVA提高三:反射总结

    为前期学习过反射,再这里再次复习总结下:[转载请说明来源:http://www.cnblogs.com/pony1223/p/7659210.html ] 一.透彻分析反射的基础_Class类 Cla ...

  7. 浅谈Java接口

    接口(英文:Interface)是Java中非常重要的内容,初学的时候可能感受不深,但是在做项目的时候,对面向接口编程的运用就变得尤为重要,不过这是后话了.现在先讨论假如是刚刚接触接口这个概念,该怎么 ...

  8. PPT排版细节,写给大家看的设计书,完美总结

    原创作者:陈玓玏 相信每一位小宝贝在工作中都会被老板用PPT虐无数遍,虐到自己怀疑人生.奈何在网上随手一搜,出现的各类招聘要求都躲不开"熟练掌握PPT制作",尤其是各类科技公司.咨 ...

  9. springboot自定义配置源

    概述 我们知道,在Spring boot中可以通过xml或者@ImportResource 来引入自己的配置文件,但是这里有个限制,必须是本地,而且格式只能是 properties(或者 yaml). ...

  10. SAP smartform 实现打印条形码

    先在SE73里定义一个新的BARCODE,注意一定要用新的才可以,旧的是打印不出来的. 然后定义一个SMARTFORM的样式,把你定义的BARCODE放到字符样式里面去. 再做SMARTFORM就可以 ...