LightOJ1079(概率+01背包)
来源:互联网 发布:java命令行导入jar包 编辑:程序博客网 时间:2024/04/28 05:30
搞了半天我连01背包都不会,难受。
一眼就看出是01背包的题,结果搞了半天还没写出递推公式。T_T
dp[j]表示当抢j元RMB时,不被捉住的最大概率。
背包的最大容量是所有银行的钱数总和。
code:
#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>#include<time.h>//a&3==a%4using namespace std ;#define ll long long#define mem(a) memset(a,0,sizeof(a))const double eps = 1e-8;const int maxn = 10010;//须填写const int inf = 0x3f3f3f3f;double dp[maxn];double w[110];int c[110];int main(){ int _case; scanf("%d",&_case); for(int ii=1;ii<=_case;ii++) { memset(dp,0,sizeof(dp)); int n; int v=0; double flag; scanf("%lf%d",&flag,&n); for(int i=0;i<n;i++) { scanf("%d%lf",&c[i],&w[i]); w[i]=1.00-w[i]; //printf("%d %f\n",c[i],w[i]); v+=c[i]; } //printf("%d\n",v); dp[0]=1.00; flag=1.00-flag; for(int i=0;i<n;i++) { for(int j=v;j>=0;j--) { dp[j]=max(dp[j],dp[j-c[i]]*w[i]); } } int money=0; for(int i=v;i>=0;i--) { if(flag<=dp[i]) { money=i; break; } } printf("Case %d: %d\n",ii,money); } return 0;}//寇瑟茹酒
阅读全文
0 0
- LightOJ1079(概率+01背包)
- LightOJ1079---Just another Robbery (概率牌01背包问题)
- LightOJ1079 Just another Robbery 01背包、概率
- Lightoj1079 概率背包(经典)
- LightOJ1079---Just another Robbery (概率做01背包)
- 期望+01背包-LightOJ1079
- lightoj1079【背包】
- lightoj1079(数学概率与期望)
- hdu2955-Robberies(01背包 概率 )
- Robberies(01背包的概率问题)
- 01背包,概率
- HDOJ1203(01背包 概率)
- hdu2955 Robberies (01背包概率)
- Lightoj 1079(01背包+概率)
- HDOJ2955 Robberies(01背包,概率)
- HDU 2955 Robberies(经典01背包概率问题)
- noj 1860 保研(01背包 概率dp)
- HDU 2955 Robberies (转化概率-01背包)
- 总结
- 33. Search in Rotated Sorted Array
- effective java(15) 之使可变性最小化
- Chris Richardson 微服务系列 第二篇 构建微服务之使用API网关
- bzoj2730 [HNOI2012]矿场搭建 tarjan 点双连通分量
- LightOJ1079(概率+01背包)
- 文件或文件夹无法删除 解决方法
- 【python学习笔记】第一个python程序
- 基础练习 字母图形
- 判断学生成绩是否有效
- 图层样式简述-1
- 步进驱动器基础及工作原理
- 1048. Find Coins (25)
- 算法第七周Maximum Binary Tree[medium]