zoukankan      html  css  js  c++  java
  • AOJ524(01背包)

    题目

    Description
    食堂对大家来说一点都不陌生,每次打菜的时候我们几乎看重两样:价钱和味道.现在你来到了桂园二楼打菜,假设你的卡里的钱为m,现在食堂里有n种菜,每种菜的价格分别为Pi,用Li来衡量你心中的每种菜的味道,我们称之为满意值.那你本次打菜最满意的值是多少呢?假设你的饭量足够大,并且你不会打两份一样的菜.

    Input
    有多组测试数据,对于每组数据
    第一行:n m为一个整数和一个一位小数(即小数点后只保留一位)分别代表菜的种类和你的卡里的钱(0<=n<=100,0<=m<=1000)
    接下来有n行,每行代表两个一位小数Pi和Li(0<=Pi<=10,0<=Li<=10)
    输入到文件结束

    Output
    每组数据输出一个一位小数,代表最大满意值

    Sample Input
    Original Transformed
    2 10.0
    1.5 9.9
    3.5 8.0
    3 2.0
    1.5 9.0
    2.0 8.8
    2.5 0.0
    

    Sample Output
    Original Transformed
    17.9
    9.0

    分析:价值和满意值是小数,转化成整数后计算。

    代码

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    double dp[100009];
    double w[1009];
    int main()
    {
        int n,v1;
        double v;
        //freopen("C:\in.txt","r",stdin);
        while (~scanf("%d%lf",&n,&v))
        {
            v1=(int)((v+0.01)*10);
            double c;
            memset(dp,0,sizeof(dp));
            for(int i=0;i<n;i++)
              {
                  scanf("%lf%lf",&c,&w[i]);
                  int c1=(int)((c+0.01)*10);
                    for(int j=v1;j>=c1;j--)
                    dp[j]=max(dp[j],dp[j-c1]+w[i]);
              }
            printf("%.1lf
    ",dp[v1]);
        }
        return 0;
    }
    

  • 相关阅读:
    如何导出API文档,没有你做不到,只有你想不到!
    Oracle 数据库数据排名函数:rank() 和dense_rank() 。
    第二次绩效评估
    检查博客
    “E记”Alpha版使用说明
    绩效评估
    第一个冲刺周期意见评论
    第一个冲刺周期意见汇总
    第一次冲刺会议评审总结
    软件工程概论第一个冲刺周期
  • 原文地址:https://www.cnblogs.com/nickqiao/p/7583384.html
Copyright © 2011-2022 走看看