hdu2955 robberies题解(01背包)

原创 2016年05月30日 22:48:45

注意要先转换成不被抓的概率再来算
状态转移方程money[k]=max(money[k],money[k-M[i]]*p[i])//这里的p[i]是不被抓的概率。

#include <stdio.h>
#include <string.h>
#define Max(X,Y) ((X)<(Y)?(Y):(X))
double money[10050];
int main(int argc, char const *argv[])
{
    double P,p[101];
    int T,N,M[101],i,k,maxn;
    scanf("%d",&T);
    while(T--){
        scanf("%lf %d",&P,&N);
        maxn=0;P=1-P;//不被抓的概率
        for(i=0;i<N;i++){scanf("%d %lf",M+i,p+i);maxn+=M[i];p[i]=1.0-p[i];}
        memset(money,0,sizeof(money));
        money[0]=1.0;
        for(i=0;i<N;i++)
            for(k=maxn;k>=M[i];k--)
                if(money[k-M[i]]*p[i]>=P)
             money[k]=Max(money[k],money[k-M[i]]*p[i]);
        for(k=maxn;k>=0;k--)
            if(money[k]>=P) {printf("%d\n",k );break;}
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

hdu2955--01背包

1、Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 正确的方程是:f[j]=max(f[j],f[j-q[i].money]*q[i...
  • acmjk
  • acmjk
  • 2012年08月21日 09:22
  • 991

hdu2955 Robberies 01背包 dp

链接:点我 题意:一个强盗要去抢劫银行,对于每个银行来说,都有一个不被抓的概率p,和能抢劫到的钱数money,每个银行最多只可以被抢劫一次。问在不被抓的总概率P下,怎样得到最大价值的钱数。 分析:...
  • liuqiyao_01
  • liuqiyao_01
  • 2013年04月01日 19:15
  • 3251

hdu2955 Robberies(01背包)

这题我是看题解做的。。。 刚开始一看浮点数遍历,乘100后再算果断WA(和我想的一样)。然后就不会了,看了才知道要转化背包,而且这个概率算的话是相乘,求的是最大逃跑概率,真是从头错到尾啊。。。还有...
  • Flynn_curry
  • Flynn_curry
  • 2016年03月21日 22:18
  • 2209

hdu2955 Robberies(01背包)题解

传送门 The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guy...
  • xxtz_666
  • xxtz_666
  • 2017年07月26日 19:15
  • 109

HDU2955_Robberies【01背包】

Robberies 题目大意:有一个强盗要去几个银行偷盗,他既想多投点钱,又想尽量不被抓到。已知各个银行 的金钱数和被抓的概率,以及强盗能容忍的最大被抓概率。求他最多能偷到多少钱? 思路:背包问题,原...
  • u011676797
  • u011676797
  • 2014年10月17日 19:33
  • 1834

HDU2955 Robberies(01背包)

Robberies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota...
  • You_are_my_dream
  • You_are_my_dream
  • 2017年04月18日 22:07
  • 164

hdu2955 — Robberies (01背包)

题目大意:Roy去抢银行,问在给定的被抓住的概率下,Roy可以抢的金钱数额最多,且小于给定概率 输入:第一行输入一个整数 T,为案例数,每组案例第一行输入给定概率 P 和银行数目 N,接下来 N 行输...
  • freshman30
  • freshman30
  • 2015年07月15日 20:56
  • 105

hdu2955 Robberies(01背包)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2955 题目大意: 有个人要去抢劫银行,在这之前他对自己抢劫的行为进行了风险估计,抢不同的银行获得的...
  • aaaaacmer
  • aaaaacmer
  • 2015年09月24日 16:21
  • 253

hdu2955 Robberies (01背包概率)

此段转自http://qianmacao.blog.163.com/blog/static/203397180201221510548987/ 题目:http://acm.hdu.edu.cn/sho...
  • f1024042400
  • f1024042400
  • 2014年12月27日 18:26
  • 237

Robberies hdu2955 01背包

http://acm.hdu.edu.cn/showproblem.php?pid=2955 这个题~,坑害了我好久好久。…… 题目大意:一个人要去抢银行,给出每个银行的总钱数和被抓概率。求在一定...
  • operator456
  • operator456
  • 2013年01月22日 15:31
  • 205
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu2955 robberies题解(01背包)
举报原因:
原因补充:

(最多只允许输入30个字)