hduoj 2955Robberies

Robberies

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 16726    Accepted Submission(s): 6165

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

Source

IDI Open 2009

Recommend

gaojie   |   We have carefully selected several similar problems for you:  1203 2159 2844 1171 1864

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<stack>
 5 #include<set>
 6 #include<map>
 7 #include<queue>
 8 #include<algorithm>
 9 using namespace std;
10 #define inf 1e-8
11 int cost[105];
12 double p[105],dp[10005];
13 int main(){
14     //freopen("D:\\INPUT.txt","r",stdin);
15     int t,bn,i,sum;
16     double pro;
17     scanf("%d",&t);
18     while(t--){
19         sum=0;
20         //memset(dp,0,sizeof(dp));
21         scanf("%lf %d",&pro,&bn);
22         pro=1-pro;//不被抓的概率大于才有效
23         for(i=0;i<bn;i++){
24             scanf("%d %lf",&cost[i],&p[i]);
25             sum+=cost[i];
26             p[i]=1-p[i];
27         }
28         for(i=0;i<=sum;i++){
29             dp[i]=0;
30         }
31         dp[0]=1;
32         int j;
33         for(i=0;i<bn;i++){
34             for(j=sum;j>=cost[i];j--){
35                 //得到j钱,最大的不被抓的可能性
36                 dp[j]=max(dp[j],dp[j-cost[i]]*p[i]);
37             }
38         }
39         for(j=sum;j>=0;j--){
40             if(dp[j]-pro>inf){
41                 break;
42             }
43         }
44         printf("%d\n",j);
45     }
46     return 0;
47 }
时间: 2024-10-06 01:08:21

hduoj 2955Robberies的相关文章

HDUOJ P1702 ACboy needs your help again!

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8599    Accepted Submission(s): 4306 Problem Description ACboy was kidnapped!! he miss his mother very much and is very scare now.You can't image

hduoj 2074 叠筐

叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 12122    Accepted Submission(s): 3122 Problem Description 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. Input 输入是一个个的三元组,分别是,外筐尺

hduoj泛刷题记录:hduoj1000-1003

一年半没碰代码,手生是自然的.暑假打算泛刷hduoj,当作调整和复习. (以下是正文) HDUOJ 1000: 水题(迷之AC率),交了6次才过.主要原因是因为我忘了scanf()不返回1,以至于自己乱搞搞就花式TLE了.改成cin就AC了.下次注意恩 #include<cstdio> #include<iostream> #include<cstring> using namespace std; int x,y; int main(){ while(cin>&

hduoj 4706 Herding 2013 ACM/ICPC Asia Regional Online —— Warmup

hduoj 4706 Children's Day 2013 ACM/ICPC Asia Regional Online —— Warmup Herding Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2005    Accepted Submission(s): 563 Problem Description Little Joh

hduoj 1077 Catching Fish 求单位圆最多覆盖点个数

Catching Fish Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1217    Accepted Submission(s): 466 Problem Description Ignatius likes catching fish very much. He has a fishnet whose shape is a c

hduoj 4706 Children&amp;#39;s Day 2013 ACM/ICPC Asia Regional Online —— Warmup

http://acm.hdu.edu.cn/showproblem.php?pid=4706 Children's Day Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 32768/32768 K (Java/Others) Problem Description Today is Children's Day. Some children ask you to output a big letter 'N'. 'N' is c

hduoj 4712 Hamming Distance 2013 ACM/ICPC Asia Regional Online —— Warmup

http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 1610    Accepted Submission(s): 630 Problem Description (From wikipedia) For bina

Cyclic Tour HDUOJ 费用流

Cyclic Tour Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/65535 K (Java/Others)Total Submission(s): 1399    Accepted Submission(s): 712 Problem Description There are N cities in our country, and M one-way roads connecting them. Now Li

HDUOJ Clear All of Them I 状压DP

Clear All of Them I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 122768/62768 K (Java/Others)Total Submission(s): 1455    Accepted Submission(s): 484 Problem Description Acmers have been the Earth Protector against the evil enemy for a lon