zoukankan      html  css  js  c++  java
  • HDU

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955

    #include <iostream>
    #include <string.h>
    using namespace std;
    /****************************************************************************************************************
                    题意:懒得看,大致是 0/1 背包
                    思路:(百度的,懒得读题了)
                    1,可以将所用银行里的钱看作背包容量,每一家银行的钱看作重量,
                    2,不被抓到的概率看作价值,
                    3,则转移方程为:dp[ j ]=max( dp[ j ] , dp[  j - bag[ i ].v]*( 1- bag[ i ].p ) );
    ****************************************************************************************************************/
    double dp[10010];
    struct node
    {
        int v;
        double p;
    }bag[10010];
    int main()
    {
        int T,n;
        double p;
        cin>>T;
        while(T--)
        {
            cin>>p>>n;
            int sum=0;
            for(int i = 0;i < n;i ++)  {
                cin>>bag[i].v>>bag[i].p;
                sum+=bag[i].v;
            }
    
            memset(dp,0,sizeof(dp));
            dp[0]=1;
            for(int i = 0;i < n;i ++)
                for(int j = sum;j >= bag[i].v;j --)
                    dp[j]=max(dp[j],dp[j-bag[i].v]*(1-bag[i].p));
            for(int i = sum;i >= 0;i --){
                if(dp[i]>1-p){
                    cout<<i<<endl;
                    break;
                }
            }
        }
        return 0;
    }
    



  • 相关阅读:
    input标签上传文件处理。
    Radio单选框元素操作。
    CompletableFuture方法
    传播学 2
    传播学 1
    0
    紅軍不怕遠征難
    ~~~~~~~~~
    什么是企业战略
    论述提供公共咨询服务的两种主要方式。
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6352003.html
Copyright © 2011-2022 走看看