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. CANVAS模仿龙卷风特效

    大学时候,有一段时间对flash比较感兴趣.去图书馆借了一本很厚很厚的falsh书籍. 翻了几页之后,就再没有往后看过.印象比较深的是作者说他用flash完成了一个龙卷风效果. 一直到现在我也没有看到 ...

  2. Microsoft Visual Studio调试监视器(MSVSMON.EXE)未能启动

    在启动VS2010项目时,遇到如图所示"Microsoft Visual Studio调试监视器(MSVSMON.EXE)未能启动"的问题. 原因是VS2010安装路径(我的是D: ...

  3. CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

    对于新安装的Linux服务器,默认OpenSSH及OpenSSL都不是最新的,需要进行升级以拒绝服务器漏洞攻击.本次介绍的是升级生产环境下CentOS6.x系列服务器平滑升级OpenSSL及OpenS ...

  4. win7+ ubuntu 双系统

    windows +linux双系统组合有多种方式,只要划好分区两者即可共处,本文是为了解决两者在启动时遇到的问题. 第三方启动器(例如grub,grub2,grub4dos等)

  5. Python系列之模块、和字符串格式化

    Python 模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用. 模块分为 ...

  6. zoj1383 zoj3418 二进制 基础

    传送门 题目大意:从末位到首位输出所在位置的值是1的位置. 可以用除---->  num>>1  或减----> -(n^(-n)) #include<cstdio> ...

  7. 【记录】Spring项目转化为Spring Web项目

    前言 在将Spring项目转化为Spring Mvc项目时出现了点问题,总是无法成功部署,查阅资料也并没有找到一个完美的解决方案,最后是参考在idea中创建maven web app项目后的目录才成功 ...

  8. 阿里巴巴 Java 开发规约插件初体验

    阿里巴巴 Java 开发手册 又一次来谈<阿里巴巴 Java 开发手册>,经过这大半年的版本迭代,这本阿里工程师们总结出来避免写出那么多 Bug 的规范,对于 Java 开发者简直就是必备 ...

  9. cocos2dx - 创建地图及玩家(伪)

    接上一节内容:cocos2dx - 环境配置,项目创建 本节主要描述cocos中精灵的创建及点击事件的使用 打开创建好的test项目,看到下图的目录结构,真正的游戏逻辑路径在src下. AppDele ...

  10. OpenGL ES2.0光照

    一.简单光照原理 平行光(正常光) 光照效果=   环境颜色 + 漫反射颜色 + 镜面反射颜色 点光源 光照效果=   环境颜色 + (漫反射颜色 + 镜面反射颜色)× 衰减因子 聚光灯 光照效果= ...