首页
学习
活动
专区
圈层
工具
发布

野牛程序员讲少儿编程之【超神版】——多重背包 + 单调队列优化!(爆炸提速版)

野牛程序员讲少儿编程之【超神版】——多重背包 + 单调队列优化!(爆炸提速版)

🧐 为什么又来一个更高级的?

之前的「二进制优化」,已经能处理中等数量了。

但是!

如果物品超级多,比如每种物品有上万件,背包容量又特别大,

就算是二进制优化,还是有点吃力

所以,真正的背包王者会用——

单调队列优化(Monotonic Queue Optimization)

这种方法就像是:

把所有可能性排成一个整齐的队伍‍‍

快速挑出最有价值的选择!

不用每次一个个试!

超大数据量,也能飞快飞快飞快处理!

代码展示(带超详细注释版)

🧠 这段代码到底在干什么?

简单说,就是:让背包问题变成选队列里最牛的那个人!

小剧场时间

小明背着超级大的背包去超市,

商品太多了,看得眼睛都花了。

这时候,聪明的野牛程序员告诉他:

「不用全都看!只挑最便宜又最好的那几个,直接塞进去!」

小明一下子装了最多的宝贝,满载而归!

为什么单调队列这么猛?

单调队列小口诀

分组取模走队列,

队头最优直接追;

超数量就弹出去,

背包装满笑开怀!

野牛程序员教少儿编程与信息学奥赛

宜宾市野牛网络科技有限公司专业微信小程序开发、网站建设、软件开发等

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Oc7J1E4Nozb1Rah0nH6OIiuw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

领券