• HDU


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

    #include <iostream>
    #include <iomanip>
    #include <algorithm>
    using namespace std;
    /****************************************************************************************************************
                    题意:0/1背包问题解决最大花费问题
                    思路:
                    1,前i件物品放入容量为v的包中→只考虑第i件放和不放→
                       前i-1件物品放入容量为v的包中(不选第i件),前i-1件物品放入容量为v-c[i]的包中(选第i件)
                    2, f[i][v] =max{f[i-1][v],f[i-1][v-c[i]]+w[i]}
                    3,本道题注意转换,可能拿到offer的最大几率=拿不到offer的最小几率
    
    ****************************************************************************************************************/
    int w[10005];
    float dp[10005],v[10005];
    int main()
    {
        int n,m;
        while(cin>>n>>m)
        {
            if(n == 0 && m == 0)    break;
            for(int i =1;i <= m;i ++){
                cin>>w[i]>>v[i];
                v[i]=1-v[i];
            }
            for(int i = 0;i <= n;i ++)
                dp[i]=1;
            for(int i = 1;i <= m;i ++)
                for(int j = n;j >= w[i];j --)
                    dp[j]=min((dp[j-w[i]]*v[i]),dp[j]);
            cout<<setiosflags(ios::fixed)<<setprecision(1)<<(1-dp[n])*100<<"%"<<endl;
        }
        return 0;
    }
    


  • 相关阅读:
    hadoop面试
    常用脚本
    1.kafka
    2.flink
    java面试
    Hbase 项目
    linux 2>&1 和 &的意思
    Jetbrains系列产品重置试用方法
    解决GitHub网页githubusercontent地址无法访问问题
    stylus 成熟的写法
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6352008.html
Copyright © 2020-2023  润新知