由于背包的容量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;
}

uva12325(分类枚举)相关推荐

  1. uva12325 暴力枚举

    这题刚开始我就贪心,直接wrong了,贪心适合可以取一个物体部分的题. 还是老实枚举吧,注意枚举要分类,不然可能会超时,还有注意答案是long long AC代码: #include<cstdi ...

  2. 游戏思考30:技能碰撞检测分类枚举及逆水寒魔兽老兵服副本攻略(英雄武林风云录,后续更新舞阳城、扬州、清明等副本攻略)

    文章目录 一.技能碰撞检测方式分类讲解 1)AABB 2)OBB 3)像素检测碰撞 4)矩阵变换检测碰撞(打住,略) 5)Tile地形检测碰撞(其实就是九方格遍历查找攻击对象) 二.武林风云录 1)老 ...

  3. 枚举(Enumerations)

    枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来使用这些值. 如果你熟悉 C 语言,你会知道在 C 语言中,枚举会为一组整型值分配相关联的名称.Swift 中的枚举更加灵 ...

  4. 动态规划总结与题目分类

    源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...

  5. Swift傻傻分不清楚系列(十)枚举

    本页内容包含: 枚举语法(Enumeration Syntax) 使用 Switch 语句匹配枚举值(Matching Enumeration Values with a Switch Stateme ...

  6. (转)dp动态规划分类详解

    dp动态规划分类详解 转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间 ...

  7. 《动态规划》— 动态规划分类

    动态规划(英语:Dynamic programming,DP)是一种在数学.计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法. 动态规划常常适用于有重叠子问题和最 ...

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

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

  9. 转:动态规划题目分类

    https://blog.csdn.net/cc_again/article/details/25866971 一.简单基础dp 这类dp主要是一些状态比较容易表示,转移方程比较好想,问题比较基本常见 ...

最新文章

  1. tf.matmul / tf.multiply
  2. 厉害了,用Python绘制动态可视化图表,并保存成gif格式
  3. docker环境下solr6.0配置(中文分词+拼音)
  4. CCF - 201509-2 - 日期计算
  5. tomcat:there is no resources that can be added or removed from server
  6. 收不回来的value
  7. java 可忽略参数_如何使用“&var =”忽略URL参数
  8. 微软BUG Bounty悬赏项目扩展至.NET Core和ASP.NET Core
  9. GCN图卷积网络入门详解
  10. cocos2dx标准容器_cocos2dx基础篇(5)——浅析几个重要类
  11. Android入门笔记03
  12. java并发编程(四) 线程池 任务执行、终止源码分析
  13. Latex 公式左对齐
  14. requirement生成和使用
  15. 计算机常用英语(键盘符号),计算机常用英语..docx
  16. J Infect (IF 38) | 韩国中央大学贾保磊等揭示人口腔微生物组中编码羊毛硫抗生素链球菌是肝脏疾病的潜在风险因子...
  17. 大二学期总结(我的机器人开发之路)
  18. eclipse默认指向WebContent目录修改为webRoot 设置说明
  19. 论「能写代码」的程序员与「会写代码」的程序员
  20. 计算机应用技术英语音标,英语国际音标

热门文章

  1. 数据结构之字符串插入操作
  2. 笔记本续命之加装固态
  3. MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android O
  4. RemoteViews完全解析
  5. Statistical Analysis:关联度分析之灰色关联分析软件
  6. 1v1对战答题小程序
  7. C语言与C++与JAVA的区别
  8. 案例研究:中国金融科技50强之“安心de利”风控模式
  9. Java面试题汇总(一)
  10. kafka报错The request included a message larger than the max message size the server will accept