HDU 2955 Robberies

来源:互联网 发布:淘宝无线套餐链接转换 编辑:程序博客网 时间:2024/06/09 19:35

其实也不难,只要搞清楚value和volume就可以了!!!


#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int vo[1001];double va[10001];double dp[10001];int main(){    int i,j,k,n,m,t,l;    double p;    while(~scanf("%d",&t))    {        while(t--)        {            scanf("%lf %d",&p,&n);            int v=0;            for(i=1;i<=n;i++)            {                scanf("%d %lf",&vo[i],&va[i]);                v+=vo[i];            }            memset(dp,0,sizeof(dp));            dp[0]=1;            for(i=1;i<=n;i++)            {                for(j=v;j>=vo[i];j--)                {                    dp[j]=max(dp[j],dp[j-vo[i]]*(1-va[i]));                }            }            for(i=v;i>=0;i--) //从大到小            {                if(dp[i]>(1-p))                {                    printf("%d\n",i);                    break;                }            }        }    }    return 0;}


0 0
原创粉丝点击