HDU 1203(01背包)
来源:互联网 发布:战锤狂鲨淘宝上一百多 编辑:程序博客网 时间:2024/05/01 17:02
题意:n万美元,m个学校,然后是m个学校的学费 及其成功拿到offer的概率。求至少拿到一个学校offer 的概率。
分析:要求至少拿到一个offer的概率,即等于1-(一个offer也拿不到的概率)。1-(1-dp[k])*(1-p[k])
状态转移方程:dp[j]=max(dp[j],1-(1-dp[j-a[i]])*(1-p[i]));
dp[j]为花费为j万元时,至少拿到一个offer的概率。
#include<cstdio>#include<vector>#include<cstring>#include<algorithm>using namespace std;int main(){ int n,m; while(scanf("%d%d",&n,&m),n+m) { vector <int> a(m+1);//若开m空间的,会Re,因为下面的循环是从1开始 vector<float> b(m+1),dp(n+10); for(int i=1;i<=m;i++) scanf("%d %f",&a[i],&b[i]),b[i]=1.0-b[i]; fill(dp.begin(),dp.end(),0);//初始化dp数组, for(int i=1;i<=m;i++) for(int j=n;j>=a[i];j--) dp[j]=max(dp[j],1-(1-dp[j-a[i]])*b[i]); printf("%.1f%%\n",dp[n]*100); } return 0;}
0 0
- hdu 1203 (01背包)
- hdu 1203 01背包
- HDU 1203 01背包
- hdu 1203 01背包
- HDU 1203 01背包
- HDU 1203(01背包)
- HDU 1203 强化01背包
- HDU 1203(01背包)
- HDU 1203 01背包问题
- hdu 1203(01背包)
- hdu 1203 01 背包2
- hdu 1203 (01背包)
- HDU 1203 乘法 01背包
- 01背包+完全背包 HDU
- hdu 1203 01背包 滚动数组
- hdu 1203 (01背包,灵活运用)
- HDU—1203 DP—01背包
- hdu 1203 01背包求概率
- SVN服务器搭建和使用(三)
- 【java基础】线程安全的单例模式
- 程序设计基础(C++)主页-2015级(提高班)
- 如何诊断 11.2 集群节点驱逐问题 (文档 ID 1674872.1)
- iOS苹果内购流程(Apple Pay)
- HDU 1203(01背包)
- hdfs常用命令
- java程序员书单--成长之路--职业发展,你读过几本
- dll文件导出对应的lib文件
- OpenCV学习笔记之CXCORE篇
- 《利用python进行数据分析》学习笔记(二)--NumPy(1)
- Android GPS
- swift 04 流程控制
- 解决listView的活动冲突