HDU 2955 - Robberies
来源:互联网 发布:步兵樱井知香影音先锋 编辑:程序博客网 时间:2024/05/22 15:39
知识点:01背包的概率问题
当前的概率基于前一种状态的概率,即偷n家银行而不被抓的概率等于偷n-1家银行不被抓的概率乘以偷第n家银行不被抓的概率。
用dp[i]表示偷价值为i时不被抓的概率,则状态转移方程为:dp[i]=max(dp[i],dp[i-m]*(1-p))。
#include <cstdio>#include <memory.h>double dp[10001];int sum;inline double max(double a,double b){ return a>b ? a : b;}void ZeroOnePack(int m,double p){ for(int i=sum;i>=m;i--) dp[i]=max(dp[i],dp[i-m]*(1-p));}int main(){ int t,n,m[100]; double p[100],P; scanf("%d",&t); while(t--) { scanf("%lf%d",&P,&n); sum=0; for(int i=0;i<n;i++) { scanf("%d%lf",&m[i],&p[i]); sum+=m[i]; } memset(dp,0,sizeof(dp)),dp[0]=1; for(int i=0;i<n;i++) ZeroOnePack(m[i],p[i]); int i; for(i=sum;i>=0&&1-dp[i]>P;i--); printf("%d\n",i); } return 0;}
- hdu 2955 Robberies
- HDU 2955 - Robberies
- hdu 2955 Robberies DP
- Hdu 2955 - Robberies
- hdu 2955 Robberies
- hdu 2955 Robberies
- hdu 2955 Robberies
- hdu 2955 Robberies
- HDU 2955 Robberies
- hdu 2955 Robberies
- hdu 2955(Robberies)
- hdu 2955 Robberies
- HDU 2955 Robberies
- hdu 2955 Robberies
- hdu 2955 Robberies
- hdu-2955-Robberies
- hdu 2955 Robberies
- HDU:2955 Robberies
- 浅显易懂的事件和委托
- 猛犸全网页截图:牛人又出牛应用
- 基础总结篇之五:BroadcastReceiver应用详解
- MySql连接数据库
- 中小规模Hadoop集群优化
- HDU 2955 - Robberies
- MSCRM4.0 为实体添加附件功能
- HDU 3496 - Watch The Movie
- [收集+转]as3开源库(先放着,以后逐一试验)
- bug状态和含义
- mysql 学习心得
- 【iOS-Cocos2d游戏开发之二十】精灵的基础知识点总汇(位图操作/贴图更换/重排z轴等)以及利用CCSprite与CCLayerColor制作简单遮盖层!
- 不能没有的精彩
- HDU 2142 - disney