HDU 2191 汶川大地震
裸的多重背包问题,直接上二进制优化吧,没事什么特别的。
#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 汶川大地震相关推荐
- 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 HDU - 2191(特殊01背包)
悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 HDU - 2191 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市 ...
- HDU - 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 HDU - 2191 AYIT-2021 609暑假集训第一周下 记忆化搜索和背包 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的 ...
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 题意:标准的多重背包,由于数据量较小,可转化为0-1背包. /*悼念512汶川大地震遇难同胞-- ...
- hdu 2191 悼念512汶川大地震遇难同胞 【多重背包】(模板题)
题目链接:https://vjudge.net/problem/HDU-2191 悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 ...
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (背包问题)
悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/ ...
- [HDU 2191] 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- HDU 2190 悼念512汶川大地震遇难同胞——重建希望小学
http://acm.hdu.edu.cn/showproblem.php?pid=2190 Problem Description 下面是512汶川大地震部分受灾学校伤亡情况(惨痛!!) 1. 四川 ...
- HDU 2186 悼念512汶川大地震遇难同胞——一定要记住我爱你
悼念512汶川大地震遇难同胞--一定要记住我爱你 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- 杭电 2191 悼念512汶川大地震遇难同胞—珍惜现在,感恩生活
题目大意 原题链接:HDOJ 2191 悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 解题思路 我本来想用贪心算法的,可是我写好算法,运行几遍试过了是ok的,只是不给AC,我想了好久,脑壳都快头 ...
最新文章
- Visual Studio 2017强制更新方法
- 查看Mysql数据库有多大
- java继承与覆盖_简单的继承,方法重载与方法覆盖
- 迁移学习(transfer learning)与finetune的关系?【finetune只是transfer learning的一种手段】
- html5 打包ios.上架,iOS帮客户打包App上架的正确姿势
- 问题 K: n个数的最大值和最小值
- Confluence 6 修改日志文件的大小数量和级别
- JavaScript基础知识(一)
- 发现本站一个非常简单易学的springClould教程 特此转载《方志朋》
- typedef用法详解
- win10桌面便签_用这几款小众软件点缀桌面,效率与幸福感爆棚
- restful风格个人理解
- 拍频和混频 PD拍频
- 安防系统的定义及相关组成部分详解
- C++——m个月饼分给n个人
- HPRT HLP106S-UE 驱动
- mysql 查询当月天数
- [论文阅读]PAN++: Towards Efficient and Accurate End-to-End Spotting of Arbitrarily-Shaped Text
- 父亲与收音机的不解情缘
- 氢氧化锂制备系统——吸附(除杂\提锂)+双极膜电渗析
热门文章
- java currenthread_currentThread
- 什么是 Ubuntu?
- iphone 微信网页自动播放音频解决办法
- Android 微信登录详细流程
- 拓嘉恒业:拼多多开店条件分享
- 苏州大学信息与通信工程837考研上岸经验分享
- 十三、JavaSE-IO体系
- 2020年之HBuilderX manifest.json配置最全详解
- kaggle比赛_前7%_预测分子中原子对之间的作用力_Predicting Molecular Properties
- (小甲鱼python)字符串系列笔记合集四 第四课、字符串IV总结 删除字符串中(左右)空格 删除指定的前缀或者后缀 字符串以参数指定的分隔符为依据进行切割,将切割后的结果返回一个三元组