HDU—2955 DP—01背包
来源:互联网 发布:雪岚数据查询网 编辑:程序博客网 时间:2024/06/05 22:33
题意是:
小偷去银行偷钱,给你最大被抓的概率P 和银行的个数N。
接下来N行 每行两个数字,第一个数字表示该银行有M钱,第二个是被抓的概率。
所以容易得到 dp[j]=max( dp[j] , dp[j-m[i]]*p[i] );
dp[j]表示偷到 j 钱时不被抓的概率。
#include <stdio.h>#include <iostream>#include <queue>#include <algorithm>#include <map>using namespace std;#define max(a,b) a>b?a:bint main(){freopen("in.in","r",stdin);int T;while(scanf("%d",&T)!=EOF){int m[110],px,N;double p[110],x;scanf("%lf %d",&x,&N);int sum=0;for(int i=1;i<=N;i++){scanf("%d %lf",&m[i],&p[i]);p[i]=1-p[i];sum+=m[i];}double dp[10010];for(int i=0;i<10010;i++) dp[i]=0;dp[0]=1;for(int i=1;i<=N;i++){for(int j=sum;j>=m[i];j--){ dp[j]=max(dp[j],dp[j-m[i]]*p[i]);}}for(int i=sum;i>=0;i--){if(dp[i]>1-x) { printf("%d\n",i);break; }}}return 0;}
0 0
- HDU—2955 DP—01背包
- HDU—1203 DP—01背包
- HDU—1171 DP 01背包
- hdu 2955 (dp 01背包)
- HDU 2955 DP 01背包
- hdu 2955 Robberies 【dp】 01背包
- HDU 2955 Robberies(DP:01背包)
- 【DP|01背包】HDU-2955 Robberies
- HDU 2955 Robberies (01背包dp)
- hdu——2955(dp之01背包,但需要转化下思维)
- hdu 2955(DP背包问题)
- DP 01背包 hdu 2602
- hdu 2602 DP 01背包
- hdu 2602 01背包DP
- hdu 1864 dp 01背包
- hdu(2546)——饭卡(背包dp)
- HDU 2955 —— Robberies 01背包
- DP —> 背包问题
- python 时间计算
- reference cycle 引用循环
- java写入csv文件
- android library引用失败,出现红叉叉解决办法
- jquery ajax post跨域访问
- HDU—2955 DP—01背包
- 关于uploadify在Firefox下session丢失的问题
- Android RecyclerView使用
- read系统调用剖析
- eclipse中的monitoring 功能
- mini2440_pwm.c 分析(PWM 驱动)
- LeakCanary: 让内存泄露无所遁形
- hdu 1495 非常可乐
- MLAPP——机器学习的概率知识总结