• [Jobdu] 题目1455:珍惜现在,感恩生活


    题目描述:

    为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?

    输入:

    输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1<=n<=100, 1<=m<=100),分别表示经费的金额和大米的种类,然后是m行数据,每行包含3个数p,h和c(1<=p<=20,1<=h<=200,1<=c<=20),分别表示每袋的价格、每袋的重量以及对应种类大米的袋数。

    输出:

    对于每组测试数据,请输出能够购买大米的最多重量,你可以假设经费买不光所有的大米,并且经费你可以不用完。每个实例的输出占一行。

    样例输入:
    1
    8 2
    2 100 4
    4 100 2
    
    样例输出:
    400

    经典的背包问题,动态规划。

     1 #include <iostream>
     2 using namespace std;
     3  
     4 int C;
     5 int n, m;
     6 int p, h, c;
     7 int dp[101];
     8 int res;
     9  
    10 int max(int a, int b) {
    11     return a > b ? a : b;
    12 }
    13  
    14 void init() {
    15     res = 0;
    16     for (int i = 0; i < n + 1; ++i) {
    17         dp[i] = -1;
    18     }
    19     dp[0] = 0;
    20 }
    21  
    22 void refresh() {
    23     for (int i = 0; i < c; ++i) {
    24         for (int j = n; j >= p; --j) {
    25             if (dp[j-p] >= 0) {
    26                 dp[j] = max(dp[j], dp[j-p] + h);
    27             }
    28             res = max(res, dp[j]);
    29         }
    30     }
    31 }
    32  
    33 int main() {
    34     cin >> C;
    35     for (int i = 0; i < C; ++i) {
    36         init();
    37         cin >> n >> m;
    38         for (int j = 0; j < m; ++j) {
    39             cin >> p >> h >> c;
    40             refresh();
    41         }
    42         cout << res << endl;
    43     }
    44     return 0;
    45 }
    46 /**************************************************************
    47     Problem: 1455
    48     User: hupo250
    49     Language: C++
    50     Result: Accepted
    51     Time:10 ms
    52     Memory:1520 kb
    53 ****************************************************************/
  • 相关阅读:
    UOJ #455 [UER #8]雪灾与外卖 (贪心、模拟费用流)
    Codeforces 482E ELCA (LCT)
    Codeforces 798D Mike and distribution (构造)
    AtCoder AGC017C Snuke and Spells
    HDU 6089 Rikka with Terrorist (线段树)
    HDU 6136 Death Podracing (堆)
    AtCoder AGC032D Rotation Sort (DP)
    jenkins+python+kubectl实现批量更新k8s镜像
    Linux 下载最新kubectl版本的命令:
    jenkins X 和k8s CI/CD
  • 原文地址:https://www.cnblogs.com/easonliu/p/3904161.html
Copyright © 2020-2023  润新知