HDU 2955 01背包
来源:互联网 发布:网络春晚2013 编辑:程序博客网 时间:2024/05/16 12:28
/* 这道题是01背包问题,但要进行转换 把列出来的总钱数作为总的重量。把逃跑成功的概率作为价值 只有当逃跑成功的概率大于预算逃跑成功的概率,这时候能抢的钱总数就是最多的 这里的vauel[0]=1也要初始化为1*/#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<string>#include<algorithm>#include<cstdlib>#define INF 0xfffffffusing namespace std;int mj[102];double pj[102], vauel[10002];int main(){ int t, n; double p; cin >> t; while(t-- && cin >> p >> n) { int sum = 0; p = 1.0 - p;//预算中逃跑成功的概率 for(int i = 1; i <= n; i++) { cin >> mj[i] >> pj[i]; pj[i] = 1.0 - pj[i];//每个银行逃跑成功的概率 sum += mj[i];//将总钱数加起来 } memset(vauel,0,sizeof(vauel)); vauel[0] = 1;//vauel初始化为1 for(int i = 1; i <= n; i++) for(int j = sum; j >= mj[i]; j--) vauel[j] = max(vauel[j],vauel[j-mj[i]]*pj[i]); for(int i = sum; i >= 0; i--) if(vauel[i] >= p)//逃跑成功的概率大于预算的概率 { cout << i << endl; break; } }return 0;}
0 0
- hdu 2955 01背包
- HDU 2955 01背包
- HDU 2955 01背包
- HDU 2955 01背包
- hdu 2955 01背包
- HDU-2955 01背包
- 背包入门 01背包 hdu 2955 Robberies
- hdu 2955 01背包问题
- hdu 2955 01 背包 Robberies
- hdu 2955 Robberies--01背包
- Hdu 2955 Robberies//01背包
- hdu 2955 Robberies (01背包)
- hdu 2955 Robberies 01背包
- hdu 2955(01 背包)
- hdu 2955 (dp 01背包)
- HDU 2955 Robberies(01背包)
- HDU 2955 Robberies (01背包)
- hdu 2955 Robberies(01背包)
- 网络winform
- Android开发工具ADT关联源码与API文档
- R语言: 如何安装 googleVis
- 学生信息管理系统总结(一)——错误总结
- 图像旋转原理说明-视频处理基础(2)
- HDU 2955 01背包
- 链表创建添加删除
- Android WebView常见问题及解决方案汇总
- nginx学习(3)
- 插入排序及归并排序
- Uva 10387 Billiard
- 【软件工程】软工初印象——软件设计之灵魂
- Away3D4.0入门教程
- poj 1001 Exponentiation 高精度乘方