题目大意:

你有一个体积为N的箱子和两种数量无限的宝物,宝物1的体积为s1,价值为v1; 宝物2的体积为s2, 价值为v2.  输入均为32位带符号整数。你的任务是计算最多能够装多大的宝物。

题目分析:

两种枚举方法,枚举宝物1的个数尽量多拿宝物2,这个很好理解,但是时间复杂度为O(N/s1); 当s1很小的时候,时间效率是非常低的;这个时候就有第二种枚举方法;

s2个宝物1的体积等于s1个宝物2的体积,而价值分别为s2*v1和s1*v2。 如果前者比较大,则宝物2最多只拿s1-1个(否则可以吧s1个宝物2换成s2个宝物1); 反之同理最多只能拿宝物一s2-1个;

#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;typedef long long LL;int main()
{int n, s1, v1, s2, v2;int T, cas = 0;scanf("%d", &T);while(T--){scanf("%d%d%d%d%d", &n, &s1, &v1, &s2, &v2);if(s1 > s2){swap(s1, s2);swap(v1, v2);}LL ans = 0;if(n/s2 > 50000){if(s2*v1 > s1*v2){for(LL i = 0; i < s1; ++i){ans = max(ans, v2*i+(n-s2*i)/s1*v1);}} else{for(LL i = 0; i < s2; ++i){ans = max(ans, v1*i+(n-s1*i)/s2*v2);}}} else{for(LL i = 0; i*s2 <= n; ++i){ans = max(ans, i*v2+(n-i*s2)/s1*v1);}}printf("Case #%d: ", ++cas);printf("%lld\n", ans);}return 0;
}

uva 12325(宝箱, 枚举问题);相关推荐

  1. uva 12325 宝箱

    书中的分类枚举法一举克服了普通枚举最大10^9的规模:第一种宝藏最多n/s1个,所以宝藏1的数量可以从1枚举到n/s1,同时算出宝藏2最多多少个,求出总价值.宝藏2最多n/s1个,枚举方法同上.因此如 ...

  2. UVA 12325 宝箱 Zombie‘s Treasure Chest

    宝箱 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. UVa LA 4253 UVa 1421 Archery 枚举,状态削减,oj错误题目 难度: 1

    题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

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

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

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

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

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

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

  8. UVA 12325 Zombie's Treasure Chest

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

  9. 7.7 竞赛题目选讲

    7.7 竞赛题目选讲 题目可能有些难,请阅读完前面的篇章后,选择是否进行阅读. 7-11 宝箱 (UVA 12325) 你有一个体积为N的箱子和两种数量无限的宝物.宝物1的体积为S1,价值为V1:宝物 ...

最新文章

  1. 第22届清华大学电子设计大赛决赛
  2. VMware虚拟机出现Reason: Failed to lock the file
  3. LUA表 pairs, ipairs输出顺序问题
  4. linux tomcat apr安装,Linux下Tomcat安装并开启APR模式-Go语言中文社区
  5. COM组件设计与应用(三)(转载)
  6. js获取时间(本周、本季度、本月..)
  7. [转]使用T4模板批量生成代码
  8. OpenCV stereo matching 代码
  9. JQuery EasyUI 扩展方法 日期控件 设置时间段函数
  10. 解决jQuery多个版本,与其他js库冲突方法
  11. Nginx - 原理机制
  12. 【SDCC 2016】微影时代、普元、亚信、Fit2Cloud、VMware、京东商城、优维科技畅聊自动化运维与容器...
  13. 2019年物联网行业市场研究报告
  14. MTK8788,6765,通用平台的按键驱动添加
  15. 私有网盘搭建——Ubuntu使用宝塔面板安装Nextcloud及优化 ------超详细
  16. 【GamePlay】UGUI的注意事项
  17. 今日头条精准引流技巧,今日头条超简单的引流技巧
  18. idea debug源码
  19. 走进Prime Time系列 - PT的Timing exception 03
  20. 你是真的“C”——详解函数递归+求解青蛙跳台阶问题

热门文章

  1. starUML使用教程
  2. Assemble(王爽)——nasm 和 masm的一些简单区分
  3. 使用微软DNS服务器解决Hotmail、微软账户登录页面无法访问的问题
  4. 物联卡中心:物联卡是正规卡吗?与流量卡有什么区别?
  5. 01_ROS_Introduction
  6. 小米公司2021秋招面试题目整理
  7. debian系linux,更换apt-get官方源为国内源
  8. 3dmax用云渲染好还是本地渲染好?云渲染哪个好用?
  9. WAF(Web应用层防火墙)了解学习
  10. 基于STM32蓝牙无线手环脉搏心率计步器体温监测设计