裸的多重背包问题,直接上二进制优化吧,没事什么特别的。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <numeric>using namespace std;const int MAX = 102;struct _ {const int none = -1;int money, dp[MAX];void clear(int n) {fill(dp, dp + (sizeof dp) / (sizeof dp[0]), none);dp[0] = 0;money = n;}void zero_one(int price, int value) {for (int c = money; price <= c; --c) {if (dp[c - price] != none) {dp[c] = max(dp[c], dp[c - price] + value);}}}void complete(int price, int value) {for (int c = price; c <= money; ++c) {if (dp[c - price] != none) {dp[c] = max(dp[c], dp[c - price] + value);}}}void multiple(int price, int value, int amount) {if (price * amount >= money) {complete(price, value);} else {for (int i = 1; amount > i;  i *= 2) {zero_one(price * i, value * i);amount -= i;}if (amount) {zero_one(price * amount, value * amount);}}}int solve(void) {return *max_element(dp, dp + money + 1);}
} backpack;int tcase, n, m, p, h, c;int main(int argc, char const *argv[]) {
#ifndef ONLINE_JUDGEfreopen("wenchuan.txt", "r", stdin);
#endifscanf("%d", &tcase); while (tcase--) {scanf("%d %d", &n, &m);backpack.clear(n);for (int i = 0; m > i; ++i) {scanf("%d %d %d", &p, &h, &c);backpack.multiple(p, h, c);}printf("%d\n", backpack.solve());}return 0;
}

HDU 2191 汶川大地震相关推荐

  1. 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 HDU - 2191(特殊01背包)

    悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 HDU - 2191 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市 ...

  2. HDU - 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

    悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 HDU - 2191 AYIT-2021 609暑假集训第一周下 记忆化搜索和背包 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的 ...

  3. hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 题意:标准的多重背包,由于数据量较小,可转化为0-1背包. /*悼念512汶川大地震遇难同胞-- ...

  4. hdu 2191 悼念512汶川大地震遇难同胞 【多重背包】(模板题)

    题目链接:https://vjudge.net/problem/HDU-2191 悼念512汶川大地震遇难同胞--珍惜现在,感恩生活                                   ...

  5. hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (背包问题)

    悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/ ...

  6. [HDU 2191] 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

    悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  7. HDU 2190 悼念512汶川大地震遇难同胞——重建希望小学

    http://acm.hdu.edu.cn/showproblem.php?pid=2190 Problem Description 下面是512汶川大地震部分受灾学校伤亡情况(惨痛!!) 1. 四川 ...

  8. HDU 2186 悼念512汶川大地震遇难同胞——一定要记住我爱你

    悼念512汶川大地震遇难同胞--一定要记住我爱你 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  9. 杭电 2191 悼念512汶川大地震遇难同胞—珍惜现在,感恩生活

    题目大意 原题链接:HDOJ 2191 悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 解题思路 我本来想用贪心算法的,可是我写好算法,运行几遍试过了是ok的,只是不给AC,我想了好久,脑壳都快头 ...

最新文章

  1. Visual Studio 2017强制更新方法
  2. 查看Mysql数据库有多大
  3. java继承与覆盖_简单的继承,方法重载与方法覆盖
  4. 迁移学习(transfer learning)与finetune的关系?【finetune只是transfer learning的一种手段】
  5. html5 打包ios.上架,iOS帮客户打包App上架的正确姿势
  6. 问题 K: n个数的最大值和最小值
  7. Confluence 6 修改日志文件的大小数量和级别
  8. JavaScript基础知识(一)
  9. 发现本站一个非常简单易学的springClould教程 特此转载《方志朋》
  10. typedef用法详解
  11. win10桌面便签_用这几款小众软件点缀桌面,效率与幸福感爆棚
  12. restful风格个人理解
  13. 拍频和混频 PD拍频
  14. 安防系统的定义及相关组成部分详解
  15. C++——m个月饼分给n个人
  16. HPRT HLP106S-UE 驱动
  17. mysql 查询当月天数
  18. [论文阅读]PAN++: Towards Efficient and Accurate End-to-End Spotting of Arbitrarily-Shaped Text
  19. 父亲与收音机的不解情缘
  20. 氢氧化锂制备系统——吸附(除杂\提锂)+双极膜电渗析

热门文章

  1. java currenthread_currentThread
  2. 什么是 Ubuntu?
  3. iphone 微信网页自动播放音频解决办法
  4. Android 微信登录详细流程
  5. 拓嘉恒业:拼多多开店条件分享
  6. 苏州大学信息与通信工程837考研上岸经验分享
  7. 十三、JavaSE-IO体系
  8. 2020年之HBuilderX manifest.json配置最全详解
  9. kaggle比赛_前7%_预测分子中原子对之间的作用力_Predicting Molecular Properties
  10. (小甲鱼python)字符串系列笔记合集四 第四课、字符串IV总结 删除字符串中(左右)空格 删除指定的前缀或者后缀 字符串以参数指定的分隔符为依据进行切割,将切割后的结果返回一个三元组