zoukankan      html  css  js  c++  java
  • hdu 2955 Robberies(01背包)

    点击打开链接

    题目意思:

    01背包的简单变异。。

    dp[i]表示偷取i元不被抓的概率。。。

    dp[j]=max(dp[j],dp[j-mm[i]]*(1-pp[i]))

    #include"stdio.h"
    #include"string.h"
    #define max(x,y) x>y?x:y;
    double dp[10001];
    int main()
    {
    	int sum,i,j,mm[101],t,n;
    	double p,pp[101];
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%lf%d",&p,&n);
    		sum=0;
    		for(i=0;i<n;i++)
    		{
    			scanf("%d%lf",&mm[i],&pp[i]);
    			sum+=mm[i];
    		}
    		memset(dp,0,sizeof(dp));
    		dp[0]=1;
    		for(i=0;i<n;i++)
    		{
    			for(j=sum;j>=mm[i];j--)
    				dp[j]=max(dp[j],dp[j-mm[i]]*(1-pp[i]));
    		}
    		for(i=sum;i>=0;i--)
    		{
    			if(dp[i]>=(1-p))
    			{
    				printf("%d\n",i);break;
    			}
    		}
    	}
    	return 0;
    }
    



  • 相关阅读:
    NYOJ 734
    NYOJ 762
    NYOJ 743
    NYOJ 478
    NYOJ 451
    NYOJ 461
    NYOJ 485
    NYOJ 333
    平均互信息
    ASCII码
  • 原文地址:https://www.cnblogs.com/yyf573462811/p/6365147.html
Copyright © 2011-2022 走看看