uva12325(分类枚举)
来源:互联网 发布:java log4j mongodb 编辑:程序博客网 时间:2024/06/04 19:34
由于背包的容量N很大,所以直接枚举的方法肯定超时。
所以我们可以按照性价比来分类枚举。
当v1/s1较大时选择让第一类尽量多,反之也是。
枚举的过程中以s1和s2的最小公倍数容量为一个节点,因为如果某种的数量再增加的话,就可以用另一种来代替。所以枚举的次数最多是min(s1-1,N/s2)或min(s2-1,N/s1)次
AC 代码:
#include <iostream>#include <algorithm>#include <cstdio>using namespace std;typedef long long ll;int main (){ ll v; ll s1,v1,s2,v2; ll m; cin >> m; for(ll k=1; k<=m; k++) { cin >> v>>s1 >> v1 >> s2 >> v2; ll V=0; ll cnt1=v/s1; ll cnt2=v/s2; if(v1*s2<=v2*s1) { for(ll i=0; i<=min(s2-1,cnt1); i++) { V=max(V,i*v1+((v-i*s1)/s2)*v2); } } else { for(ll i=0; i<=min(s1-1,cnt2); i++) { V=max(V,i*v2+((v-i*s2)/s1)*v1); } } cout << "Case #"<<k << ": " <<V<<endl; } return 0;}
0 0
- uva12325(分类枚举)
- Uva12325 Zombie's Treasure Chest【分类枚举】【例题7-11】
- Uva12325 暴力枚举
- uva12325 暴力枚举
- uva12325
- Uva12325
- UVA12325
- UVa12325 宝箱(两种枚举方法)
- uva12325(Zombie's Treasure Chest/宝箱)=>多种方式枚举
- uva12325(greedy)
- UVa12325 - Zombie's Treasure Chest
- 例题7-11 宝箱 UVa12325
- 【BZOJ1088】[SCOI2005]扫雷Mine【枚举】【分类讨论】
- POJ初级分类 枚举专题 poj1753 poj2965
- 【算法分类】【搜索】【DFS】枚举所有子集
- 学习笔记:Java 分类枚举和策略枚举(枚举的嵌套)
- UVA-12325 Zombie'sTreasureChest 宝箱 (分类枚举)
- UVALIVE 3525 Wild West <分类枚举 + 二分优化>
- 国王的烦恼
- android studio ndk编译原生可执行文件
- 【Unity&DragonBones】DB的资料总览
- VMware中安装Centos7以及联网方式的选择
- 一只大二狗的Android历程--开端
- uva12325(分类枚举)
- 函数版万年历
- 利用JEXL实现动态表达式编译
- HDU2050 折线分割平面
- PAT 1040 有几个PAT
- hpu Triangles(数学)
- 机器学习-学习笔记-梯度下降-SGD/BGD
- 通过Java代码装配bean【Spring 入门】
- 4.hadoop之Zookeeper——01.简介及基本配置说明