Uva12325 Zombie's Treasure Chest【分类枚举】【例题7-11】
来源:互联网 发布:幼儿园美工活动反思 编辑:程序博客网 时间:2024/05/20 19:15
题目:Zombie's Treasure Chest
题意:有一个体积为N的箱子和两种数量无限的宝物。 宝物1的体积为S1,价值为V1;宝物2的体积为S2,价值为V2。你的任务是计算最多能装多大价值的宝物。
思路:分俩种情况枚举:
枚举1:当s1或s2的体积很大(即n/s1 n/s2 很小)时,枚举较大体积的那个宝物即可。
枚举2:当s1和s2的体积很小,但N又很大时,此时按枚举1来就超时了,由题可得:S2个宝物1和S1个宝物2的体积相等,而价值分别为S2*V1和S1*V2。所以当前者较大时,宝物2最多s1-1个,因为以上的条件可知,当体积相等的条件下宝物1的价值大,所以宝物2不能再超出那个范围了,这样宝物1就不能放到最大化,总价值就不是最大化。后者较大时同理。 所以将俩种宝物都枚举后取最大的。
参考:入门经典-例7-11-P210 + 紫书代码库
代码:
#include <iostream>#include <cstdio>using namespace std;typedef long long ll;const int maxn = 65536;inline ll fun(ll tal,ll n,ll s1,ll s2,ll v1,ll v2){ ll ans = 0; for(ll i=0;i<=n;i++) ans = max(ans,i*v2 + (tal-s2*i)/s1 * v1);return ans;}int main(){ ll T,n,s1,s2,v1,v2,ans,kcase = 1; scanf("%lld",&T); while(T--){ scanf("%lld%lld%lld%lld%lld",&n,&s1,&v1,&s2,&v2); if( s1 > s2) swap(s1,s2),swap(v1,v2);//s2作为较大的 if((double)n / s2 > maxn) ans = max(fun(n,s1,s1,s2,v1,v2),fun(n,s2,s2,s1,v2,v1));//俩个都很小 else ans = fun(n,n/s2,s1,s2,v1,v2);// printf("Case #%lld: %lld\n",kcase++,ans); } return 0;}
0 0
- Uva12325 Zombie's Treasure Chest【分类枚举】【例题7-11】
- 例题7-11 宝箱(Zombie's Treasure Chest, Shanghai 2011, UVa12325)
- UVa12325 - Zombie's Treasure Chest
- uva12325(Zombie's Treasure Chest/宝箱)=>多种方式枚举
- UVa #12325 Zombie's Treasure Chest (例题7-11)
- hdu 4091 Zombie’s Treasure Chest 贪心+枚举
- HDU 4091Zombie’s Treasure Chest(贪心+枚举)
- HDU 4091 Zombie’s Treasure Chest(贪心+枚举)
- Hrbust 1201 Zombie’s Treasure Chest【贪心+暴力枚举】
- [中等] UVa OJ 12325 Zombie's Treasure Chest 另类枚举
- HDU4091 Zombie’s Treasure Chest
- hdu4091 Zombie’s Treasure Chest
- 12325 Zombie's Treasure Chest
- 12325 - Zombie's Treasure Chest.
- 12325 - Zombie's Treasure Chest
- Zombie's Treasure Chest UVA
- Zombie's Treasure Chest UVA
- HDU 4091--Zombie’s Treasure Chest
- Network Link Conditioner模拟不同网络环境
- YDB进阶使用详解
- android 获取手机内所有图片
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- Web开发中最致命的8个小错误
- Uva12325 Zombie's Treasure Chest【分类枚举】【例题7-11】
- snowflake 不重复id代码生成类
- $_SERVER各种用法
- Java中的XML文件解析
- Vim快速移动光标至行首和行尾
- Js常用逻辑函数
- LEETCODE--Reverse Vowels of a String
- 关于Spring MVC中的表单标签库的使用
- Python调用.NET库