当前位置: 首页 > news >正文

贪心策略总结

贪心 is so difficult!!!

国王游戏

Problem

题意简介:
\(n\) 个大臣,国王左右手上的整数分别是 \(a_0,b_0\),第 \(i\) 个大臣左右手上的整数分别是 \(a_i,b_i\)
现在国王和所有大臣将排成一排,国王在队伍最前面,后面的 \(n\) 个大臣的顺序随便排。
排好队后,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。
请你安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少,并求出这个最小值。

\(1\le n\le 10^3,0<a_i,b_i<10^4\)

Solution

省流:排序 \(\verb!and!\) 推式子。

\(w(x)\) 表示大臣 \(x\) 的奖赏。

假设目前大臣 \(i\) 在大臣 \(j\) 后面,并令大臣 \(i\) 前面所有人左手上的数的积为 \(W\),可得大臣 \(i\) 和大臣 \(j\) 的奖赏分别为

\[\begin{cases} w(i)=\lfloor\frac{W}{b_i}\rfloor\\ w(j)=\lfloor\frac{W}{a_jb_j}\rfloor \end{cases}\]

往排序上想,考虑大臣 \(i\) 和大臣 \(j\) 在什么情况交换位置后更优。

大臣 \(i\) 和大臣 \(j\) 交换位置后,他们的奖赏分别是

\[\begin{cases} w^\prime(i)=\lfloor\frac{W}{a_jb_i}\rfloor\\ w^\prime(j)=\lfloor\frac{Wa_i}{a_jb_j}\rfloor \end{cases}\]

容易得到,当 \(\max\{w^\prime(i),w^\prime(j)\}<\max\{w(i),w(j)\}\) 时,大臣 \(i\) 和大臣 \(j\) 交换位置后会更优。

再进一步拆分这个东西:

\[\max\{\lfloor\frac{W}{a_jb_i}\rfloor,\lfloor\frac{Wa_i}{a_jb_j}\rfloor\}<\max\{\lfloor\frac{W}{b_i}\rfloor,\lfloor\frac{W}{a_jb_j}\rfloor\} \]

下取整看上去极其之烦,但是直接去掉下取整只会使得这个式子两边取等的次数变少,对答案没有一点影响,所以下取整可以放心大胆地去掉。

式子两边都有 \(W\),直接除掉它,以简化式子。

\[\max\{\frac{1}{a_jb_i},\frac{a_i}{a_jb_j}\}<\max\{\frac{1}{b_i},\frac{1}{a_jb_j}\} \]

可以发现 \(\dfrac{1}{a_jb_i}<\dfrac{1}{b_i}\verb! and !\dfrac{a_i}{a_jb_j}>\dfrac{1}{a_jb_j}\) 恒成立。

那么可得:

\[\frac{a_i}{a_jb_j}<\frac{1}{b_i} \]

解得 \(a_ib_i<a_jb_j\)

\(\because\frac{1}{a_jb_i}<\frac{1}{b_i}\le\max\{\frac{1}{b_i},\frac{1}{a_jb_j}\}\)
\(\therefore\) 最后没列出关于 \(\frac{1}{a_jb_i}\) 的不等式。

以此为关键字进行排序,然后 \(\mathcal{O}(n)\) 扫一遍即可。

时间复杂度:\(\mathcal{O}(n\log n)\)
空间复杂度:\(\mathcal{O}(n)\)

均分纸牌

Problem

Johnson 法则

Problem

http://www.gsyq.cn/news/22904.html

相关文章:

  • 完整教程:在鸿蒙NEXT中使用WebSocket实现实时网络通信
  • Atcoder Regular Contest 做题记录
  • 深入解析:Async++ 源码分析2---aligned_alloc.h
  • Linux sas3ircu RAID 控制管理工具详解
  • 新手学AI算法/嵌入式 “知其然不知其所以然”?华清远见虚拟仿真工具拆分算法组件 + 动态调参,过程感拉满
  • http1.0,http2.0,http3.0各个协议的特点和区别
  • 2025年工厂维保服务厂家权威推荐榜:机电维修、应急维修、设备安装维修、运维服务全方位解析
  • SQL 多表查询实用技巧:ON 和 WHERE 的区别速览 - 教程
  • 2025年10月洗碗机品牌榜单推荐:五强性能全解析
  • PolarDB Supabase 助力 Qoder、Cursor、Bolt.diy 完成 VibeCoding 最后一公里
  • 00-第一个C语言程序-Hello,world
  • 提取ai字幕
  • 乙二醇
  • CSP-S2 历年真题 - L
  • 2025 集装箱吊机厂家推荐:乳山华江以智能技术+硬核质量破局,解决选机难题!
  • 2025年10月长白山度假酒店推荐:民俗与国际品质兼得
  • 2025年10月长白山度假酒店推荐:民俗与国际范兼得
  • 2025年10月访客系统推荐:五强榜单与选型要点
  • 2025 上海财税服务机构优选榜:上海注册公司与代理记账领域靠谱服务商推荐
  • 2025全屋定制厂家推荐:聚焦异形空间+特色色系,森佰特木业领衔优质之选
  • springboot 设置文件上传大小
  • 【光照】UnityURP[屏幕空间环境光遮蔽SSAO]原理剖析实践
  • Ai元人文:讨论一种新的决策科学
  • 2025年流量计厂家权威推荐榜单:热式/模拟式/数字式/高压/高温/耐腐蚀/多气体/4-20mA/RS485/分体式/不锈钢高精度流量计公司精选
  • 2025年连铸机厂家权威推荐榜单:扇形段/大包回转台/钢包中间罐/结晶器总成/拉矫机/引锭杆/输送辊道/液压剪等核心部件专业供应商
  • 正态总体中标准化单样本残差的分布推导
  • 史馆
  • firecrawl 私有部署(test)
  • 大模型 | VLM 初识及在自动驾驶场景中的应用
  • CF1977 Codeforces Round 948 (Div. 2) 游记(VP)