博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu2955 Robberies
阅读量:4157 次
发布时间:2019-05-26

本文共 1066 字,大约阅读时间需要 3 分钟。

hdu2955 Robberies

标签:01背包


/*    题意:在不被抓的概率范围内,获得最多的钱。    分析:题目输入是不被抓的概率上限P,和每个银行被抓的概率pi。          转化一下,取反P = 1 - P, pi = 1- pi。(多个独立事件的概率等于它们的积)          在获得足够多得钱的前提下,使得dp[sum]最大。(dp[sum]为抢到sum的钱不被抓的概率)          若dp[sum](不被抓) > P(被抓),sum就是能够得到的最多的钱。*/#include 
#include
#include
using namespace std;const int maxn = 10005;int money[105];double dp[maxn], pro[105];int main(){ int T; scanf("%d", &T); while(T--) { double P; int N, sum = 0; scanf("%lf %d", &P, &N); P = 1.0 - P; for(int i = 0; i < N; i++) { scanf("%d %lf", &money[i], &pro[i]); sum += money[i]; pro[i] = 1.0 - pro[i]; } memset(dp, 0, sizeof(dp)); //ZeroOnePack template dp[0] = 1.0; ///dp[] for(int i = 0; i < N; i++) for(int j = sum; j >= money[i]; j--) dp[j] = max(dp[j], dp[j - money[i]] * pro[i]); //积 for(int i = sum; i >= 0; i--) if(dp[i] - P > 0.00000001) {
printf("%d\n", i); break;} } return 0;}

转载地址:http://kikxi.baihongyu.com/

你可能感兴趣的文章
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
Mysql复制表以及复制数据库
查看>>
如何使用 systemd 中的定时器
查看>>
linux进程监控和自动重启的简单实现
查看>>
OpenFeign学习(六):OpenFign进行表单提交参数或传输文件
查看>>
Ribbon 学习(三):RestTemplate 请求负载流程解析
查看>>
深入理解HashMap
查看>>
XML生成(三):JDOM生成
查看>>
Ubuntu Could not open lock file /var/lib/dpkg/lock - open (13:Permission denied)
查看>>
C#入门
查看>>
C#中ColorDialog需点两次确定才会退出的问题
查看>>
数据库
查看>>
nginx反代 499 502 bad gateway 和timeout
查看>>
linux虚拟机安装tar.gz版jdk步骤详解
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>