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

邻项交换

又称微扰法等

例题

最小化最大延迟惩罚

有 n 个任务,每个任务有一个有用时 \(p_i\) 和一个截止时间 \(d_i\),若完成时间为 \(c_i\),要最小化 \(max{c_i - d_i}\)

考虑如果有两个相邻的 \(i\)\(j\),不交换答案是:

\[\max(t + p_i - d_i, t + p_i + p_j - d_j) \]

交换的答案是:

\[\max(t + p_j - d_j, t + p_i + p_j - d_i) \]

如果交换要不优,那么:

\[\max(t + p_i - d_i, t + p_i + p_j - d_j) \leq \max(t + p_j - d_j, t + p_i + p_j - d_i) \]

这个我们可以化简为:

\[t + p_i + p_j - d_j \leq t + p_i + p_j - d_i\\ \Leftrightarrow d_i \leq d_j \]

则说明按照 \(d_i\) 排序使最优的。

最小化最大权值结束时间之积

若加入权值 \(w_i\),最小化 \(\max{w_ic_i}\)

这个也是同理,答案是 \(\frac{p_i}{w_i}\)

习题

最小式

建立表达式树,那么同号的叶子可以随意互换。

我们可以建出来树后跑 dfs,每次在一个极大的同号子树内进行合并,至于合并的方式我们可以猜测是按照运算时间自小至大合并。

简单证一下:

假如我现在只有三个点 \(t_a < t_b < t_c\),那么考虑 a 和谁合并:

  1. (a-b)-c
    \(ans_1 = \max(O + \max(t_a, t_b), t_c) + O\)
  2. (a-c)-b
    \(ans_2 = \max(O + \max(t_a, t_c), t_b) + O\)

\[ans_1 - ans_2 = \max(O + t_b, t_c) - \max(O + t_c, t_b) = \max(O + t_b, t_c) - O - t_c \leq 0 \]

则可知从小到大合并更优。

AT_abc366_f [ABC366F] Maximum Composition

同样考虑邻项交换,我原本的顺序如果是 \(f_a(f_b(x))\),可以得到交换前后答案之差:

\[A_aB_b - A_bB_a + B_a - B_b = B_a(1 - A_b) - B_b(1 - A_a) \]

若交换不优,则:

\[B_a(1 - A_b) > B_b(1 - A_a)\\ \Leftrightarrow \frac{B_a}{1 - A_a} > \frac{B_b}{1 - A_b} \]

http://www.jsqmd.com/news/42962/

相关文章:

  • day26-MCP基础
  • 20232427 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • P9534 [YsOI2023] 广度优先遍历
  • 2025-11-17 ZYZ28-NOIP模拟赛-Round7 hetao1733837的record
  • day25-langgraph进阶
  • markdown格式绘制各种图
  • 11.17 考试总结
  • 计算机网络第六章---应用层(基于谢希仁老师第八版)
  • 随机化
  • 递推组合数
  • 第一次接触 JSAPIThree(百度地图 JSAPI Three)学习笔记
  • Who wants to be king:2
  • 写日记是对的
  • vulkan学习笔记第一篇_环境部署
  • 2025!超简单安装部署gitlab
  • Data Agent 精选推荐:Aloudata Agent 企业级 AI 数据分析“专家”
  • 25.11.17随笔联考总结
  • web代码模板
  • 西瓜决策树
  • 2025-11-17 早报新闻
  • V8的浏览器运行时环境
  • http https
  • 使用 LLM + Atlassian MCP 1小时生成年终总结
  • 11.17比赛题解
  • 如何选择开源许可证
  • 管理者的职责:对自己负责,对团队负责,对业绩负责,对结果负责
  • 易路AI人才罗盘:盘活内部人才资产,打造精准敏捷的人才供应链
  • 25.11.17
  • 11.17日学习笔记
  • 在线升级