题意:

给定一个容积为n的箱子,装两种宝物,每一种宝物有数量s和价值v这两个参数,问如何装才能使价值最大(输入均为32位带符号的整数)

思路

一开始肯定会想到贪心来找性价比高的,但是举个例子(n=100,s1=90,v1=90;s2=25,s2=24)此时物体1的性价比高,但是放了物体1才价值90,如果全部放物体2有价值96,所以不仅仅只看性价比,这个时候我们应该来枚举性价比低的那个物体(物体2),但是范围是多少??这个时候你是不是想到了一个范围(<=n/s2),没错,但是当n比较大s2比较小的时候你会发现(n/s2)数据就比较大了,枚举可能会超时,那我们还需要一个范围,仔细想想,物体1性价比高等价于(v1s2>=v2s1),此时我们枚举的又是物体2,聪明的你肯定发现,v2*s1中s1可以看成物体2的数量,这此时物体2的数量肯定不会超过s1,因为如果>=s2,那我们可以用性价比更好的物体1来代替,所以就又得到一个范围(<=s1-1);;当物体2性价比高的时候情况和上面类似。。

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){ll t,i,n,ans=0,s1,s2,v1,v2,k=1;cin>>t;while(t--){ans=0;cin>>n>>s1>>v1>>s2>>v2;if(v1*s2>=v2*s1){//1性价比高,枚举2 for(i=0;i<=min(n/s2,s1-1);i++){ans=max(ans,i*v2+((n-i*s2)/s1)*v1);//总价值=(物体2价值+物体1价值)= i*v2+((n-i*s2)/s1)*v1)}}else {//2性价比高,枚举1for(i=0;i<=min(n/s1,s2-1);i++){ans=max(ans,i*v1+((n-i*s1)/s2)*v2);} }printf("Case #%lld: %lld\n",k++,ans);} return 0;
}

UVa12325 12325 - Zombie‘s Treasure Chest(思路+代码)相关推荐

  1. UVA 12325 Zombie's Treasure Chest

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

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

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

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

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

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

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

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

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

  6. UVA 12325 宝箱 Zombie‘s Treasure Chest

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

  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. php论坛思路,PHP论坛实现积分系统的思路代码详解

    PHP论坛实现积分系统的思路代码详解,积分,头像,等级,用户,字段 PHP论坛实现积分系统的思路代码详解 易采站长站,站长之家为您整理了PHP论坛实现积分系统的思路代码详解的相关内容. 首先在用户表定 ...

最新文章

  1. 通过a标签在页面上显示视频网站中的视频
  2. 单网段DHCP服务器的架设
  3. 042_Popconfirm气泡确认框
  4. 创建用于云支持的枢纽
  5. 反编译exe软件_【娱乐向】exe逆向工程(破译《游戏开发课》老师的成绩程序)...
  6. 谭浩强C语言程序设计 学习辅导练习题
  7. 洛谷P1173:[NOI2016] 网格(tarjan、离散化)
  8. 用C语言操作MySQL数据库
  9. LeetCode 1711. 大餐计数(map计数 + 二分查找)
  10. Memcache分布式部署方案
  11. 手把手教你启动若依微服务项目
  12. 识别同音字词pypinyin, 分词 jieba
  13. Atitis mybatis的功能api扩展总结 目录 1. MybatisAdvUtil 1 1.1. 根据session得到所有配置 1 1.2. Configuration1.getMappe
  14. 北京联通 烽火光猫+烽火HG680 不拆机破解
  15. 拉格朗日插值法与牛顿插值法
  16. 怎么修改PDF文件中的文字?快来学这两种方法
  17. 打开计算机不显示硬盘盘符,电脑硬盘不显示盘符怎么办 移动硬盘不显示盘符的原因...
  18. 给计算机老师的元旦祝福,元旦祝福语送老师_简短的送给老师的元旦祝福
  19. 《听闻远方有你》简谱-刘均演唱
  20. 官宣:教父级讲师李明加入尚硅谷

热门文章

  1. 做生意要顺势而为,但不是盲目跟风
  2. Debian如何更换apt源
  3. CocosCreator做摄像机跟随主角移动
  4. 漫步最优化五——可行域
  5. 闲置电脑搭建一台linux服务器,在局域网内访问
  6. 网络安全工程师做什么?
  7. JSTL 标签库c:if :forEach :forTokens
  8. “大数据”爆发时代,国内存储产业加速发展
  9. System.StackOverflowException
  10. 计算机内存条属于组合电路吗,寄存器和内存条的基础实现电路方案