书中的分类枚举法一举克服了普通枚举最大10^9的规模:第一种宝藏最多n/s1个,所以宝藏1的数量可以从1枚举到n/s1,同时算出宝藏2最多多少个,求出总价值。宝藏2最多n/s1个,枚举方法同上。因此如果n/s1比较小,就枚举宝藏1,n/s2比较小就枚举宝藏2如果n很大而s1 s2很小,则用以下的枚举法:s2个宝藏1和s1个宝藏2体积相等,但价值分别为s2*v1和s1*v2。如果前者大于后者,则最优解的宝藏2最多拿s1-1个,因为如果拿了s1个宝藏2,则可以全部换成宝藏1,体积一样但价值更高了。反之对于宝藏1也一样。因此枚举量最大为max(s1-1, s2-1)。

//  Created by Chenhongwei in 2015.
//  Copyright (c) 2015 Chenhongwei. All rights reserved.#include"iostream"
#include"cstdio"
#include"cstdlib"
#include"cstring"
#include"climits"
#include"queue"
#include"cmath"
#include"map"
#include"set"
#include"stack"
#include"vector"
#include"sstream"
#include"algorithm"
using namespace std;
typedef long long ll;
int main()
{   //ios::sync_with_stdio(false);freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);int T;cin>>T;for(int z=1;z<=T;z++){cout<<"Case #"<<z<<": ";ll n,s1,v1,s2,v2;cin>>n>>s1>>v1>>s2>>v2;ll ans=0;if(s1*v2>s2*v1){swap(v1,v2);swap(s1,s2);}if(s1<=s2){int tmp=min(s1,n/s2);for(int i=0;i<=tmp;i++)ans=max(ans,i*v2+(n-i*s2)/s1*v1);}else{int tmp=min(s2,n/s1);for(int i=0;i<=tmp;i++)ans=max(ans,(n/s1-i)*v1+(n-(n/s1-i)*s1)/s2*v2);}cout<<ans<<endl;}return 0;
}

uva 12325 宝箱相关推荐

  1. UVA 12325 宝箱 Zombie‘s Treasure Chest

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

  2. uva 12325(宝箱, 枚举问题);

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

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

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

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

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

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

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

  6. UVA 12325 Zombie's Treasure Chest

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

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

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

  8. 7.7 竞赛题目选讲

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

  9. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

最新文章

  1. Ubuntu环境下使用gnuplot由数据表绘制曲线图
  2. 使用SQL*PLUS构建完美excel或html输出
  3. logback的简单使用
  4. optee中mutex的实现方式
  5. linux使进程不依赖终端,Linux nohup命令应用简介--让Linux的进程不受终端影响
  6. HTML DOM console.table() 方法
  7. [转]何时使用委托而不使用接口(C# 编程指南)
  8. Java线程局部变量ThreadLocal
  9. 使用python制作ArcGIS插件(2)代码编写
  10. Linux之系统信息操作20170330
  11. 液晶拼接处理器_大屏幕显示系统设备中矩阵与液晶拼接屏的连接方法
  12. 让智能设备拯救你的颈椎——智能颈椎按摩仪
  13. Unity 之自动化打包ipa
  14. 【12c】12c RMAN新特性之recover table(表级别恢复)
  15. 第七篇 indicators(4)自建指标
  16. 双系统 Win10下安装Linux(单/双硬盘)
  17. 【华为OD机试真题 Java】统计射击比赛成绩
  18. Qt中嵌入Directx11
  19. 怎么才能快速减去皮下脂肪?
  20. Failed to resolve: com.github.chrisbanes:PhotoView:1.2.6 Show in File Show i

热门文章

  1. ubuntu:下载ubuntu内核
  2. StarUML使用教程一览
  3. Android 选择器 PickerView实例,时间选择器、地址选择器、单项选择器、多项选择器自定义布局
  4. c语言餐厅点餐管理系统源码,C语言实现餐饮点餐管理系统.pdf
  5. 华云数据打造企业社会责任践行范本
  6. Mysql连接数据库url的参数解析
  7. 品牌笔记本电脑启动BIOS按键
  8. 什么是SQL注入式攻击,如何去防范SQL注入式攻击
  9. SeetaFace使用(问题)
  10. 漫步者和南卡蓝牙耳机哪个好?高性价比蓝牙耳机测评