Robberies(HDU2955):01背包+概率转换问题(思维转换)
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背包+概率转换问题(思维转换)的更多相关文章
- hdu 2955 Robberies 0-1背包/概率初始化
/*Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- hdu2955 Robberies (01背包)
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:pid=2955">http://acm.hdu.edu.cn/showproblem.php ...
- HDOJ.2955 Robberies (01背包+概率问题)
Robberies 算法学习-–动态规划初探 题意分析 有一个小偷去抢劫银行,给出来银行的个数n,和一个概率p为能够逃跑的临界概率,接下来有n行分别是这个银行所有拥有的钱数mi和抢劫后被抓的概率pi, ...
- HDU-2955 Robberies 浮点数01背包 自变量和因变量位置互换
题目链接:https://cn.vjudge.net/problem/HDU-2955 题意 突然想找几个银行抢钱. 给出各银行的钱数和被抓的概率,以及能容忍的最大被抓概率. 问他最多能抢到多少钱? ...
- HDU 2955 Robberies (01背包,思路要转换一下,推荐!)
题意: 小A要去抢劫银行,但是抢银行是有风险的,因此给出一个float值P,当被抓的概率<=p,他妈妈才让他去冒险. 给出一个n,接下来n行,分别给出一个Mj和Pj,表示第j个银行所拥有的钱,以 ...
- hdoj2955 Robberies(01背包)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2955 题意 有n家银行,每家银行有两个属性:钱数m,概率p,p表示抢这家银行被逮着的概率.有一个人想抢 ...
- hdu 2955 Robberies(01背包)
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- HDU 2955 Robberies【01背包】
解题思路:给出一个临界概率,在不超过这个概率的条件下,小偷最多能够偷到多少钱.因为对于每一个银行都只有偷与不偷两种选择,所以是01背包问题. 这里有一个小的转化,即为f[v]代表包内的钱数为v的时候, ...
- HDU 1203 I NEED A OFFER! 01背包 概率运算预处理。
题目大意:中问题就不说了 ^—^~ 题目思路:从题目来看是很明显的01背包问题,被录取的概率记为v[],申请费用记为w[].但是我们可以预先做个处理,使问题解决起来更方便:v[]数组保留不被录取的概率 ...
随机推荐
- vsftpd 修改默认目录
默认配置下: 匿名用户登录 vsftpd 服务后的根目录是 /var/ftp/:系统用户登录 vsftpd 服务后的根目录是系统用户的家目录. 若要修改登录 vsftpd 服务后的根目录,只要修改 / ...
- Inside The C++ Object Model - 03
object Lessons 1.C++中布局以及存取时间上的的额外负担是由virtual引起的:virtual function.virtual base class.或是由于多继承引起的. 2.C ...
- Inside The C++ Object Model - 01
前言 1.Foundation项目是一个定义大系统开发模型的项目,又叫Grail. 2.Grail中编译器被分为:parser(语法分析)->type checking -> simpli ...
- mysql 主从复制 实践
异步主从复制 主从部署步骤: 备份还原 使用mysqldump或者xtrabackup 把主库现有基础数据还原到从库 授权 grant replication slave on *.* 给从库一个 ...
- 【原】JS原型的动态性及实例与原型的关系
今天再读了<JS高程>的第六章,有了些深入的感悟和理解,总结分享一下. 创建对象的方式有很多,有一种是动态原型模式,最实用的是构造函数与原型组合的模式,原型的动态性在这两个模式里都有所体现 ...
- 4.Mybatis的输入映射(parameterType类型解析)
前面提到过Mybatis可以对输入的参数进行映射,那么现在我们来看一下输入映射,关于输入映射大概可以分为几种情况来学习: 1.基本的类型 2.实体类 3.包装类 1.参数是基本的类型(int,Stri ...
- (十一) 一起学 Unix 环境高级编程 (APUE) 之 高级 IO
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- .NET Remoting获取配置通道:
接上文: public static string ChannelManagerUrl { get { retu ...
- Tcp之异常
Tcp异常 昨研发报异常,据CMCC说是我方服务器主动断开的,于是怀疑是超时设置过短,于是我抓包,由于我接触socket时日尚短,搞不清为什么三次握手成功之后我方服务器会立刻发送fin 今天本来做实验 ...
- 开源PLM软件Aras详解三 服务端简易开发
废话少说,直接进入主题, 以CAD为例: 先找到CAD对象类:具体操作见下图 双击打开,找到服务端事件:见下图 点击新建对象,点击添加,新建Method 编写Method,语言分为前端和后端,前端支持 ...