Robberies  HDU2955

因为题目涉及求浮点数的计算:则不能从正面使用01背包求解。。。

为了能够使用01背包!从唯一的整数(抢到的钱下手)。。。

之后就是概率的问题:

题目只是给出被抓的几率,如果同时抢两家银行的话,那么被抓的概率是:

(1-一家不被抓的概率*另一家不被抓的概率)

才是同时抢两家被抓的概率!

最后和题目给出的概率比较取较大值。。。

那么赋初值的时候dp[0]=1。

注意:不要误以为精度只有两位。

 #include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
double n,b[];
double dp[];
int a[];
int main()
{
int t,m,s,i,j;
scanf("%d",&t);
while(t--)
{
scanf("%lf%d",&n,&m);
n=1-n;
s=;
for(i=;i<m;i++)
{
scanf("%d%lf",&a[i],&b[i]);
s+=a[i];
b[i]=1-b[i];
}
memset(dp,,sizeof(dp));
dp[0]=1;
for(i=;i<m;i++)
for(j=s;j>=a[i];j--)
dp[j]=max(dp[j],dp[j-a[i]]*b[i]);
for(j=s;j>=;j--)
if(dp[j]-n>0.0000001)
break;
printf("%d\n",j);
}
return ;
}

Robberies(HDU2955):01背包+概率转换问题(思维转换)的更多相关文章

  1. hdu 2955 Robberies 0-1背包/概率初始化

    /*Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. hdu2955 Robberies (01背包)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:pid=2955">http://acm.hdu.edu.cn/showproblem.php ...

  3. HDOJ.2955 Robberies (01背包+概率问题)

    Robberies 算法学习-–动态规划初探 题意分析 有一个小偷去抢劫银行,给出来银行的个数n,和一个概率p为能够逃跑的临界概率,接下来有n行分别是这个银行所有拥有的钱数mi和抢劫后被抓的概率pi, ...

  4. HDU-2955 Robberies 浮点数01背包 自变量和因变量位置互换

    题目链接:https://cn.vjudge.net/problem/HDU-2955 题意 突然想找几个银行抢钱. 给出各银行的钱数和被抓的概率,以及能容忍的最大被抓概率. 问他最多能抢到多少钱? ...

  5. HDU 2955 Robberies (01背包,思路要转换一下,推荐!)

    题意: 小A要去抢劫银行,但是抢银行是有风险的,因此给出一个float值P,当被抓的概率<=p,他妈妈才让他去冒险. 给出一个n,接下来n行,分别给出一个Mj和Pj,表示第j个银行所拥有的钱,以 ...

  6. hdoj2955 Robberies(01背包)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2955 题意 有n家银行,每家银行有两个属性:钱数m,概率p,p表示抢这家银行被逮着的概率.有一个人想抢 ...

  7. hdu 2955 Robberies(01背包)

    Robberies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  8. HDU 2955 Robberies【01背包】

    解题思路:给出一个临界概率,在不超过这个概率的条件下,小偷最多能够偷到多少钱.因为对于每一个银行都只有偷与不偷两种选择,所以是01背包问题. 这里有一个小的转化,即为f[v]代表包内的钱数为v的时候, ...

  9. HDU 1203 I NEED A OFFER! 01背包 概率运算预处理。

    题目大意:中问题就不说了 ^—^~ 题目思路:从题目来看是很明显的01背包问题,被录取的概率记为v[],申请费用记为w[].但是我们可以预先做个处理,使问题解决起来更方便:v[]数组保留不被录取的概率 ...

随机推荐

  1. NDK 的开发流程

    1.NDK开发所需要的工具 windows 需要在windows下的环境 把c代码打包成 手机能用的函数库 首先模拟手机的环境 1 NDK .sh linux 批处理文件 .bat windows 头 ...

  2. ASP.NET Web API之消息[拦截]处理

    标题相当难取,内容也许和您想的不一样,而且网上已经有很多这方面的资料了,我不过是在实践过程中作下记录.废话少说,直接开始. Exception 当服务端抛出未处理异常时,most exceptions ...

  3. 用odbc连接oracle问题

    如果用11g的客户端,然后通过odbc(远程连接)连接10g的oracle,会出现监听程序无法启动(ORA-12541: TNS: 无监听程序) 此时需要在客户端目录中D:\instantclient ...

  4. postman-根据接口文档进行测试

    根据接口文档来测试 1.get请求

  5. 云主机不能外网ssh连接,只能内网ssh连接的问题处理

    某台服务器外网无法ssh,内网可以ssh连接,ping值延时比较大 安装iftop查看流量 yum install -y iftop iftop界面含义如下 第一行:带宽显示 中间部分:外部连接列表, ...

  6. Python 集合方法总结

    1.添加一个元素:    add(...) Addan element to a set. 1 2 3 4 >>> a = {'shaw',11,22} >>>a. ...

  7. python语句表达式——黑板客老师课程学习

    1.赋值 多重赋值: a,b=1,2 a,b=’beijing’,’sh’ a,b=’bj’ a,b=(1,2) a,b=[1,2] …… 2.输入输出 输入: raw_input()   原始输入 ...

  8. 慕课网JavaScript入门篇课程笔记

    1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...

  9. 案例:TableLayout表格布局——迷你计算器

    计算器可以常用线性布局(LinearLayout)和表格布局(tableLayout).Gridlayout 今天我用的是表格布局 效果如下: 代码如下: <TableLayout xmlns: ...

  10. js 验证码 倒计时60秒

    js 验证码 倒计时60秒 <input type="button" id="btn" value="免费获取验证码" /> & ...