HDU 2955 —— Robberies 01背包
来源:互联网 发布:淘宝网女士纱巾 编辑:程序博客网 时间:2024/04/28 18:33
http://acm.hdu.edu.cn/showproblem.php?pid=2955
题意:给出概率p和n;下面n行表示每个银行的钱数和被抓的概率;要求被抓概率不得超过p;问最多可以偷多少钱;
注意点:1、从反面思考,不被抓的概率;2、将所有银行的钱数看作是总容量,概率为价值;3、如果一个银行都偷不了输出是0;
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int maxv = 10000+10;float dp[maxv];float p;int n;struct Node{int v;float p;}node[110];int main(){int cas;scanf("%d", &cas);while(cas--){scanf("%f%d", &p, &n);int sum = 0;for(int i = 1;i<=n;i++){scanf("%d%f", &node[i].v, &node[i].p);sum += node[i].v;}memset(dp, 0, sizeof dp);dp[0] = 1;for(int i = 1;i<=n;i++){for(int j = sum;j>=node[i].v;j--){dp[j] = max(dp[j], dp[j-node[i].v]*(1-node[i].p));}}int ans = 0;for(int i = 1;i<=sum;i++){if(1-dp[i] <= p){ans = max(ans, i);}}printf("%d\n", ans);}return 0;}
0 0
- HDU 2955 —— Robberies 01背包
- hdu 2955 01 背包 Robberies
- hdu 2955 Robberies--01背包
- Hdu 2955 Robberies//01背包
- hdu 2955 Robberies (01背包)
- hdu 2955 Robberies 01背包
- HDU 2955 Robberies(01背包)
- HDU 2955 Robberies (01背包)
- hdu 2955 Robberies(01背包)
- hdu 2955 Robberies(01背包)
- hdu Robberies 2955 01背包
- HDU 2955 - Robberies(01 背包)
- HDU--2955--Robberies--01背包
- hdu-2955-01背包-Robberies
- HDU 2955 Robberies 01背包
- HDU 2955Robberies(01 背包)
- HDU - 2955 Robberies 01背包
- HDU-2955-Robberies【01背包】
- thrift_入门指南
- 【学习】kudu、Impala、交互式查询
- BZOJ 1406 - 伪数论
- awk之RS、ORS与FS、OFS
- 封装性
- HDU 2955 —— Robberies 01背包
- 如何在Android上起一个定时器?
- BootStrap table 数据填充与分页应用总结
- UITableViewDataSource
- struts2 生成下载文件
- C语言中的static关键字
- 命令提示符-C盘转换D盘
- poj 2299 Ultra-QuickSort 【线段树求和(点更新)】
- 【OJ8756】砝码称重V2,可达性多重背包