题目大意:

你有一个体积为N的箱子和两种数量无限的宝物。宝物1的体积为S1,价值为V1;宝物2的体积为S2,价值为V2。输入均为32位带符号的整数。你的任务是最多能装多少价值的宝物?

对于宝物1和2,当所占体积为S1*S2时,分别能够提供的价值为S2*V1和S1*V2,我们便可以根据两者的大小关系判断选哪一种物品,如果S2*V1>=S1*V2,则我们可以得出宝物的数量最多为S1-1,因为如果我们选了S1件宝物2,则我们完全可以用S2件宝物1去代替,而且我们获得价值会更大。因此每次可以枚举min(S1-1,cnt2)或者min(S2-1,cnt1)便可以得出答案。

另外书上提出了分类枚举的方法,我们可以根据S1和S2的范围大小而采取不同的枚举方法。

方法1代码:

#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;int main() {//freopen("aa.in", "r", stdin);int T;ll N, S1, V1, S2, V2;ll ans ;ll cnt1, cnt2;int kcase = 0;cin >> T;while(T--) {kcase++;cin >> N >> S1 >> V1 >> S2 >> V2;cnt1 = N / S1;cnt2 = N / S2;ans = 0;if(V1 * S2 >= V2 * S1) {for(int i = 0; i <= min(S1 - 1, cnt2); ++i) {ll t = V2 * i + (N - S2 * i) / S1 * V1;if(ans < t) {ans = t;}}} else {for(int i = 0; i <= min(S2-1, cnt1); ++i) {ll t = V1 * i + (N - S1 * i) / S2 * V2;if(ans < t) {ans = t;}}}cout << "Case #" << kcase << ": " << ans << endl;}return 0;
}

方法2代码:

/*
int main() {//freopen("aa.in", "r", stdin);int T;ll N, S1, V1, S2, V2;ll ans = 0;ll cnt1, cnt2;int kcase = 0;cin >> T;while(T--) {kcase++;cin >> N >> S1 >> V1 >> S2 >> V2;cnt1 = N / S1;cnt2 = N / S2;ans = 0;if(S1 >= 100000) {for(int i = 0; i <= cnt1; ++i) {ll t = V1 * i + (N - S1 * i) / S2 * V2;if(ans < t) {ans = t;}}} else if(S2 >= 100000) {for(int i = 0; i <= cnt2; ++i) {ll t = V2 * i + (N - S2 * i) / S1 * V1;if(ans < t) {ans = t;}}} else {if(S2 * V1 >= S1 * V2) {for(int i = 0; i <= min(S1 - 1, cnt2); ++i) {ll t = V2 * i + (N - S2 * i) / S1 * V1;if(ans < t) {ans = t;}}} else {for(int i = 0; i <= min(S2 - 1, cnt1); ++i) {ll t = V1 * i + (N - S1 * i) / S2 * V2;if(ans < t) {ans = t;}}}}cout << "Case #" << kcase << ": " << ans << endl;}return 0;
}
*/

UVA 12325 Zombie's Treasure Chest相关推荐

  1. UVA - 12325 Zombie's Treasure Chest 暴力

    根据两种情况 选择不同枚举 哇!  这题开始用 int 类型的数写的,只有 存最大 价值量的 mix_ 用了long long ,结果交了一遍 wa ,查了一遍 没问题啊?? 后来意识到 max 函数 ...

  2. Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)

    题意: 你有一个体积为N的箱子和两种数量无限的宝物.宝物1的体积为S1,价值为V1:宝物2的体积为S2,价值为V2.输入均为32位带符号的整数.你的任务是最多能装多少价值的宝物? 分析: 分类枚举, ...

  3. UVa 12325 - Zombie's Treasure Chest(暴力枚举+预处理)

    给出背包大小n,两种宝物的体积s1.s2,两种宝物的价值v1.v2.求能装下的最大价值. 首先进行预处理,使n/s1的值尽可能小,满足O(n)的时间不超时.s2的宝物1与s1个宝物2体积相同,所以s= ...

  4. UVa12325 12325 - Zombie‘s Treasure Chest(思路+代码)

    题意: 给定一个容积为n的箱子,装两种宝物,每一种宝物有数量s和价值v这两个参数,问如何装才能使价值最大(输入均为32位带符号的整数) 思路 一开始肯定会想到贪心来找性价比高的,但是举个例子(n=10 ...

  5. UVA 12325 宝箱 Zombie‘s Treasure Chest

    宝箱 Zombie's Treasure Chest 题面翻译 你有一个体积为N的箱子和两种数量无限的宝物.宝物1的体积为S1,价值为V1::宝物2的体积为S2,价值为V2.输入均为32位带符号整数. ...

  6. Uva12325 Zombie's Treasure Chest [二分区间+模拟退火]

    Zombie's Treasure Chest 题目链接 https://cn.vjudge.net/problem/UVA-12325 题意 两种物品无穷多个,第一种物品重量s1s_1s1​,价值v ...

  7. 【例题 7-11 UVA - 12325】Zombie's Treasure Chest

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 1.N/s1 < 1e6 枚举1的个数 2.N/s2<1e6 枚举2的个数 3.s1和s2的值较小 假设买了s2个1和s ...

  8. BZOJ2490 Zombie’s Treasure Chest

    如果n = lcm(s1, s2),那么就可以直接得到maxV = (v / s1 * v1, v / s2 *v2) 然后还剩下一点体积我们暴力枚举用s1的量,让s1为max(s1, s2)可以减少 ...

  9. bzoj2101【Usaco2010 Dec】Treasure Chest 藏宝箱

    2101: [Usaco2010 Dec]Treasure Chest 藏宝箱 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 418  Solved: ...

最新文章

  1. LeetCode简单题之数组中第 K 个独一无二的字符串
  2. 在 Kubuntu 21.04 中安装和升级 KDE Plasma 5.2
  3. redis(二)redis实战 使用redis进行文章的排序
  4. php mysql 主从复制_Windows 环境下,MySQL 的主从复制和主主复制
  5. HNUOJ 13341
  6. mysql5.6的安装步骤_MySQL5.6安装步骤
  7. js数字累加 · 递增动画 - 封装篇
  8. html js url 跳转页面内容,js跳转页面方法总结
  9. Qt 互斥量 QMutex
  10. 对jfinal中enjoy的理解
  11. 操作系统和绿色软件下载网址
  12. es 安装 ik 分词器
  13. 浙江大学_包家立教授计算生物学2_信源编码理论
  14. 【转载】国产手机MTK平台MRP软件应用安装大全
  15. 蛙人高频交易拆单策略—蛙人高频软件结构及使用说明
  16. codeforces 1077E Thematic Contests
  17. 干货 | 七年留美经验,帮你省钱自助游美国
  18. Java 近百万数据查询和导出共用时2分钟左右
  19. python 批量替换当前.txt文本内容
  20. macbook 安装iperf_【优秀的网络性能测量工具----Iperf】-Linux/Unix/MAC OSX操作系统论坛-ZOL中关村在线...

热门文章

  1. 科普一下,什么是网站系统的性能,可用性,可伸缩性,可扩展性?
  2. PyTorch中的topk函数详解
  3. 【Android 系统】--- 下载 Android源码
  4. Terracotta 3.2.1简介 (三)
  5. python打印日历小项目
  6. ViewFlipper的用法
  7. 99的测试人还不会用nose进行自动化测试
  8. 谈谈个人网站的建立(五)—— 小集群的部署
  9. 如何制造一个XcodeGhost ?
  10. 交换机中的生成树,是什么树?