lightoj 1079 Just another Robbery
题意:给出银行的个数和被抓概率上限。在给出每个银行的钱和抢劫这个银行被抓的概率。求不超过被抓概率上线能抢劫到最多的钱。
dp题,转移方程 dp[i][j] = min(dp[i-1][j] , dp[i-1][j-v[i]]) ,dp[i][j]表示前 i 个银行抢劫到 j 这么多钱被抓的概率。
初始化时 dp[0][0] = 0 , 因为 dp[0][1~n]是不可能的情况,dp[0][1~n]=-1。
#include<stdio.h>
#define maxn 110
#define min(a,b) (a)>(b)?(b):(a) double a[maxn];
int v[maxn];
double f[maxn][maxn*maxn];
int main()
{
int T,cas=;
int n;
double p;
int sum;
scanf("%d",&T);
while(T--)
{
sum=;
scanf("%lf%d",&p,&n);
for(int i=;i<=n;i++) scanf("%d%lf",&v[i],&a[i]),sum+=v[i];
for(int i=;i<=sum;i++) f[][i]=-;
f[][]=;
for(int i=;i<=n;i++)
for(int j=;j<=sum;j++)
{
if(j-v[i]< || f[i-][j-v[i]]<-0.5) f[i][j]=f[i-][j];
else if(f[i-][j]<) f[i][j]=f[i-][j-v[i]]+(-f[i-][j-v[i]])*a[i];
else f[i][j]=min(f[i-][j],f[i-][j-v[i]]+(-f[i-][j-v[i]])*a[i]);
}
int ans=;
for(int i=;i<=sum;i++)
if(f[n][i]>-0.5 && f[n][i]<p)
ans=i;
printf("Case %d: %d\n",cas++,ans);
}
return ;
}
lightoj 1079 Just another Robbery的更多相关文章
- LightOJ - 1079 Just another Robbery —— 概率、背包
题目链接:https://vjudge.net/problem/LightOJ-1079 1079 - Just another Robbery PDF (English) Statistics ...
- LightOJ 1079 Just another Robbery 概率背包
Description As Harry Potter series is over, Harry has no job. Since he wants to make quick money, (h ...
- LightOJ 1079 Just another Robbery (01背包)
题意:给定一个人抢劫每个银行的被抓的概率和该银行的钱数,问你在他在不被抓的情况下,能抢劫的最多数量. 析:01背包,用钱数作背包容量,dp[j] = max(dp[j], dp[j-a[i] * (1 ...
- LightOJ 1079 Just another Robbery (01背包)
题目链接 题意:Harry Potter要去抢银行(wtf???),有n个银行,对于每个银行,抢的话,能抢到Mi单位的钱,并有pi的概率被抓到.在各个银行被抓到是独立事件.总的被抓到的概率不能超过P. ...
- (概率 01背包) Just another Robbery -- LightOJ -- 1079
http://lightoj.com/volume_showproblem.php?problem=1079 Just another Robbery As Harry Potter series i ...
- 1079 - Just another Robbery
1079 - Just another Robbery PDF (English) Statistics Forum Time Limit: 4 second(s) Memory Limit: 3 ...
- LightOJ - 1079 概率dp
题意:n个银行,每个有价值和被抓概率,要求找被抓概率不超过p的最大价值 题解:dp[i][j]表示前i个取j价值的所需最小概率,01背包处理,转移方程dp[i][j]=min(dp[i-1][j],d ...
- KUANGBIN带你飞
KUANGBIN带你飞 全专题整理 https://www.cnblogs.com/slzk/articles/7402292.html 专题一 简单搜索 POJ 1321 棋盘问题 //201 ...
- kuangbin 带你飞 概率期望
正推不行就逆推! 经典问题:生日悖论 换成其互斥事件:m个人, 每个人生日都不相同的概率 ≤ 0.5 时最小人数. 这就是邮票收集问题的变形:每个邮票至少出现一次的概率 小于等于 0.5 邮票收集问题 ...
随机推荐
- UVA10869 - Brownie Points II(线段树)
UVA10869 - Brownie Points II(线段树) 题目链接 题目大意:平面上有n个点,Stan和Ollie在玩游戏,游戏规则是:Stan先画一条竖直的线作为y轴,条件是必需要经过这个 ...
- SSCTF-Final-Re-Play
SSCTF-Final-Re-Play 比赛时花了一晚上搞定了,结果写脚本的时候发送的内容忘记base64加密然后异或8了,手动测试的时候当然是这样做了,写脚本的时候脑抽了.这个题只有forx做出来 ...
- 【线段树求最靠前】【HDU2795】【Billboard】
题意: 有一个H*W的广告牌,当插入一个广告时(1*Wi),问最靠前的插入方式是什么 新生赛有个类似的题目,可惜当时居然没水过去. 果断用线段树做 以H为线段 建树,存[l,r]中最大的宽度,因为区间 ...
- SWFUpload的使用及其注意事项
SWFUpload的使用: 添加Jquery swfuploaad.js handler.js文件 配置参数: upload_url:文件将要被传到的处理程序 post_params:{“”: ...
- C# for 循环 迭代法 穷举法
for()循环. 四要素: 初始条件,循环条件,状态改变,循环体. 执行过程: 初始条件--循环条件--循环体--状态改变--循环条件.... 注意:for的小括号里面分号隔开,for的小括号后不要加 ...
- centos yum 完全卸载依赖
centos yum 完全卸载依赖 you install a package with yum install, say pdftk, it will pull in a lot of dep ...
- .NET自动更新
asp.net b/s就是布置在服务器的.你这个是要单机版的更新机制,博客园里面好几篇文章说这事呢. http://www.cnblogs.com/cnsharp/archive/2013/04/11 ...
- Node.js内置的工具和第三方模块来进行单步调试
1.命令行调试: Node.js调试命令: run 执行脚本,在第一行暂停 restart 重新执行脚本 cont,c 继续执行,知道遇到下一个断点 next,n 单步执行 step,s 单步执行,并 ...
- 有结果集的mysqli函数获取行数和列数
<?php $mysqli=new mysqli("localhost", "root", "123456", "xsphp ...
- js返回当前时间的毫秒数
Date.now(); +new Date(); new Date().getTime();