zoukankan      html  css  js  c++  java
  • HDOJ2955 0/1背包的价值和重量

    【hdoj2955】

    1.概率问题;
    计算逃跑率,但是要变成相×的
    2.背包处理问题
    然后因为率不能作为那个重量,所以价值作为重量,求一个在每个价值下的最大的逃跑率,然后在给定的逃跑率下面,来一个sum作为最大的那个价值,最后倒着for一波sum就行了

    #include <stdio.h>
    #include <iostream>
    #include <sstream>
    #include <string.h>
    #include <math.h>
    #include<stdlib.h>
    #include <queue>
    #include <set>*/
    #include <algorithm>
    using namespace std;
    ///dp[i][j]=max(dp[i-1][j-w[i]]+v[i],dp[i-1][j]);
    double dp[10010];
    double max(double a,double b)
    {
        return a>b?a:b;
    }
    int main()
    {
        int T,i,j,sum;
        int w[110];
        double v[110],k;
        int n;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%lf%d",&k,&n);
            memset(dp,0,sizeof(dp));
            sum=0;
            for(i=1;i<=n;i++)
            {
                scanf("%d%lf",&w[i],&v[i]);
                sum+=w[i];
                v[i]=1-v[i];
            }
            k=1-k;
            dp[0]=1;
            for(i=1;i<=n;i++)
            {
                for(j=sum;j>=w[i];j--)
                {
                    dp[j]=max(dp[j],dp[j-w[i]]*v[i]);
                }
            }
            for(i=sum;i>=0;i--)
            {
                if(dp[i]>=k)
                    break;
            }
            printf("%d
    ",i);
        }
        return 0;
    }
  • 相关阅读:
    itextpdf 和 pdfbox 测试用例
    Java base64 编码、解码
    常用字体
    DIY 单片机 入门
    太难了。
    Java 之 native:JNI 本地方法测试实现
    Java 之 String 引用传递
    Java class 文件 方法的指令含义
    Spring学习文章链接
    数据结构_树_图_总结
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934569.html
Copyright © 2011-2022 走看看