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

四边形不等式相关

四边形不等式

我们称一个二元函数 \(w(i, j)\) 满足四边形不等式,当且仅当对于任意 \(a \le b \le c \le d\) 满足:

\[w(a, c) + w(b, d) \le w(a, d) + w(b, c) \]

即交叉小于包含。

其可以用来对转移进行优化,具体的,设:

\[f(i) = \min_{j \le i} w(j, i) \]

定义 \(\operatorname{opt}(i)\) 表示计算 \(f(i)\) 时最优的那个决策点 \(j\),称其满足决策单调性当且仅当对于任意 \(i < j\) 满足 \(\operatorname{opt}(i) \le \operatorname{opt}(j)\)

性质 \(1\)

\(w(i, j)\) 满足四边形不等式,则 \(f(i)\) 满足决策单调性。

考虑反证法,若存在 \(i < j\)\(x = \operatorname{opt}(i) > y = \operatorname{opt}(j)\),那么根据定义有 \(w(x, j) \ge w(y, j), w(y, i) \ge w(x, i)\),于是 \(w(x, j) + w(y, i) \ge w(y, j) + w(x, i)\),违反了四边形不等式,于是得证。

性质 \(2\)

如果对于任意 \(i, j\) 满足 \(w(i, j) + w(i + 1, j + 1) \le w(i, j + 1) + w(i + 1, j)\),那么 \(w\) 满足四边形不等式。

证明比较显然,考虑 \(w(i + 1, j) + w(i, j + 1) - w(i, j) - w(i + 1, j + 1) \ge 0\),这表示 \(w\) 的二维差分矩阵非负;于是考察其二维差分矩阵上一个子矩阵 \((b + 1, d + 1), (a, c)\) 的和必然也非负,即 \(w(a, d) - w(a, c) - w(b, d) + w(b, c) \ge 0\),这是四边形不等式的定义。


上面那个决策单调性太特殊了,只对 \(f(i) = \min w(j, i)\) 生效,感觉没有什么实际用途,一般都是这种问题:将序列分段使得权值最小,即:

\[f(i) = \min_{j \le i} f(j - 1) + w(j, i) \]

这种怎么办?考虑:

性质 \(3\)

\(w(i, j)\) 满足四边形不等式,则 \(w(i, j) = x_i + y_j\) 也满足。

这是显然的,带入进去把 \(x, y\) 都消掉了。

于是只需要 \(w(i, j)\) 满足四边形不等式,则上面 \(f(i)\) 的转移也满足决策单调性。

如果强制钦定了要分 \(k\) 段,可以根据情况使用 wqs 二分或者多加一维解决。


考虑 \(w(l, r)\) 可能是 \(\sum_{l \le i \le j \le r} c(i, j)\) 的形式:

性质 \(4\)

\(c(i, j) \ge 0\),则 \(w(l, r) = \sum_{l \le i \le j \le r} c(i, j)\) 满足四边形不等式。

考虑证明 \(w(x, y) + w(x + 1, y + 1) \le w(x, y + 1) + w(x + 1, y)\),考虑拆贡献 \(x + 1 \le i \le j \le y\)\((i, j)\) 对两边贡献是相同的,然后左边是 \(\sum_{i = x, j \in [x, y]} c_{i, j} + \sum_{i \in [x + 1, y + 1], j = y + 1} c_{i, j}\),然后右边 \(w(x, y + 1)\) 去掉 \(x + 1 \le i \le j \le y\)\((i, j)\) 后是 \(\sum_{i = x,j \in [x, y + 1]} c(i, j) + \sum_{i \in [x, y + 1], j = y + 1} c(i, j)\),于是右边多考虑了 \(c(x, y + 1)\),得证。

例题

P1880 [NOI1995] 石子合并

考虑区间 dp,定义 \(dp(l, r)\) 表示将区间 \([l, r]\) 合并的最小代价,于是有转移:

\[dp(l, r) = (s_r - s_{l - 1}) + \min\limits_{k = l}^{r - 1} (dp(l, k) + dp(k + 1, r)) \]

钦定 \(l\) 固定时,有 \(w(i, j) = dp(l, i) + dp(i + 1, j)\) ,考虑证明 \(w(i, j)\) 满足四边形不等式,你推下式子发现等价于证明 \(dp(i, j)\) 满足四边形不等式。

这里 \(dp(i, j)\) 满足四边形不等式的充要条件是 \(h(i, j) = s_i - s_{j - 1}\) 也满足四边形不等式且满足区间包含单调性,可以对长度数学归纳发得到。

然后你发现上面固定右端点 \(r\) 时也有决策单调性,于是有 \(\operatorname{opt}(l, r) \in [\operatorname{opt}(l, r - 1), \operatorname{opt}(l + 1, r)]\),所以这样枚举决策点时间复杂度就是 \(O(n^2)\) 的。

link

于是可以得到性质 \(5\)

\(w(l, r)\) 满足四边形不等式且满足区间包含单调性,若 \(dp(l, r) = w(l, r) + \min\limits_{k = l}^{r - 1} (dp(l, k) + dp(k + 1, r))\),那么 \(dp(l, r)\) 也满足四边形不等式;且固定 \(l\) 或者固定 \(r\) 时都满足决策单调性,即 \(\operatorname{opt}(l, r) \in [\operatorname{opt}(l, r - 1), \operatorname{opt}(l + 1, r)]\)

类似题目 UVA10304 Optimal Binary Search Tree。

CF868F Yet Another Minimization Problem

考虑 \(c(i, j) = [a_i = a_j]\),那么 \(w(l, r) = \sum_{l \le i \le j \le r} c(i, j)\) 满足四边形不等式,于是 \(dp\) 时:

\[dp_{i, j} = \min_{k \le i} dp_{k - 1, j - 1} + w(k, i) \]

这个最优决策 \(k\) 具有单调性;考虑用分治与整体二分的思想解决。

即我们定义 \(solve(l, r, kl, kr)\) 表示目前在转移 \([l, r]\) 内的点,其最优决策点在 \([kl, kr]\) 内;那么可以暴力算出 \(mid\) 的最优决策点 \(kmid\),然后递归到 \(solve(l, mid - 1, kl, kmid), solvew(mid + 1, r, kmid, kr)\);显然递归层数使用 \(\log n\) 层,且每层 \([kl, kr]\) 的总长度是 \(O(n)\) 级别的,于是单次时间复杂度是 \(O(n \log n)\)

现在问题在于如何快速算 \(w(l, r)\),你考虑用类似莫队的走指针方式解决,你发现每次移动的长度是 \(O(len)\) 级别的,于是最终是 \(O(n \log n)\) 次。

总时间复杂度为 \(O(nk \log n)\)

link

P3515 [POI 2011] Lightning Conductor

这题你推一下式子,若对于 \(i\) 的答案是 \(k\),那么要对于所有 \(j\) 满足:

\[k + h_i \ge h_j + \sqrt{|i - j|} \]

\[k \ge h_j + \sqrt{|i - j}| - h_i \]

于是:

\[k = \lceil\max_{j} h_j + \sqrt{|i - j|} \rceil - h_i \]

考虑怎么算 \(h_j + \sqrt{|i - j|}\),这里分讨 \(j < i\)\(j > i\) 两种情况算就可以去掉绝对值,然后 \(w(i, j) = \sqrt{i - j}\),容易发现 \(w\) 满足四边形不等式,于是有决策单调性。

于是分治解决即可,时间复杂度为 \(O(n \log n)\)

link

P4767 [IOI 2000] 邮局 加强版

显然对于每个设立的邮局,到其距离最近的村庄集合是集合,于是可以设立状态 \(dp_{i, j}\) 表示考虑前 \(i\) 个村庄放了 \(j\) 个邮局的最小代价:

\[dp_{i, j} = \min\limits_{k < i} dp_{k, j - 1} + w(k + 1, i) \]

其中 \(w(l, r)\) 表示在区间 \([l, r]\) 内放一个邮局的最小代价,显然将邮局放在中位数位置最优,于是可以增量递推:

\[w(l, r) = w(l, r - 1) + a_r - a_{\frac{l + r}{2}} \]

你发现 \(w\) 满足四边形不等式,于是我们按照 \(j\) 分层每层分治计算即可,时间复杂度为 \(O(nk \log n)\).

link

这里证明一下上面的 \(w\) 满足四边形不等式,即 \(w(i, j) + w(i + 1, j + 1) \le w(i, j + 1) + w(i + 1, j)\);首先注意到 \([i, j + 1]\)\([i + 1, j]\) 的中位数一样,设为 \(k\)

那么 \(w(i, j + 1) = w(i + 1, j) + a_k - a_i + a_{j + 1} - a_k = w(i + 1, j) + a_{j + 1} - a_i\),于是 \(w(i, j + 1) + w(i + 1, j) = 2w(i + 1, j) + a_{j + 1} - a_i\)

然后根据 \(w\) 的最小性的定义,可以得到 \(w(i, j) \le w(i + 1, j) + a_k - a_i, w(i + 1, j + 1) \le w(i + 1, j) + a_{j + 1} - a_k\),于是 \(w(i, j) + w(i + 1, j + 1) \le 2w(i + 1, j) + a_{j + 1} - a_i = w(i, j + 1) + w(i + 1, j)\) 得证。

P10861 [HBCPC2024] MACARON Likes Happy Endings

洛谷同步题解。

\(s\) 为前缀异或,那么 \(c(i, j) = [s_j \oplus s_{i - 1} = d] \ge 0\),于是 \(w(l, r) = \sum_{l \le i \le j \le r}\) 满足四边形不等式,于是 \(dp\) 时:

\[dp_{i, j} = \min_{k \le i} dp_{k - 1, j - 1} + w(k, i) \]

然后分治去做,计算 \(w(k, i)\) 可以简单走指针计算,于是时间复杂度是 \(O(nk \log n)\) 的。

link

上面那题因为你的代价 \(w'(i, j)\) 是固定的,所以可以分治去算;而本题代价是和之前的 \(dp\) 值相关的,怎么办?

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

相关文章:

  • 【小程序毕设全套源码+文档】基于微信小程序的学生定位考勤系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 【小程序毕设源码分享】基于springboot+微信小程序的面向小学生的阅读交流系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 2026 年水质检测仪采购清单:手持式、台式、固定式设备品牌全解析 - 品牌推荐大师1
  • 【小程序毕设源码分享】基于springboot+微信小程序的上门做菜预定服务平台的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 西门子S7-200smart PLC用RS485通讯读取绝对值伺服编码器当前位置程序,并将当前...
  • 汽车制造行业OA系统如何优化百度UE的跨平台截屏功能?
  • 2026工业展好评榜:哪些展会成为行业焦点?智能/机械/机床/传感器/仪器仪表/机器人/液压气动,工业展展会排行榜 - 品牌推荐师
  • 如何在 Linux 中使用 sort 命令排序 ?
  • 半监督深度学习网络在医疗图像处理中的研究
  • 金融风控平台如何通过百度富文本编辑器导入Word带图表格?
  • python random 库
  • 【小程序毕设全套源码+文档】基于微信小程序的面向小学生的阅读交流系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 杭州性价比高的隔膜气压罐工厂排名有吗? - 工业品牌热点
  • 2026国产时序数据库全景盘点:聚焦金仓融合多模架构的差异化之路
  • Linux I/O多路复用技术详解:Select、Poll 和 Epoll
  • 【小程序毕设全套源码+文档】基于微信小程序的上门做菜预定服务平台设计与实现(丰富项目+远程调试+讲解+定制)
  • 深入解析:【JavaSE】十九、JVM运行流程 类加载Class Loading
  • 2026年求推荐靠谱的AI智能办公鼠标,南方网通鸿容鼠标别错过 - 工业品牌热点
  • Tops新年赛总结
  • VisionMaster之上下相机对位贴合
  • IPTools v5.0.8.3 专业 IP 地址修改与网卡配置工具
  • 总结2026年轴承老牌代理厂家,伯陆商城优势显著 - 工业品牌热点
  • 2026年苏州食材配送一站式服务保障排名,旺利涛食品实力上榜! - 工业品牌热点
  • 聊聊专业翻译企业,天使翻译公司质量保障与服务优势有哪些? - 工业品牌热点
  • 2026年市面上做得好的高架库企业排名,高架库/智能仓储/智能仓库/立体仓储/全自动仓库,高架库公司如何选 - 品牌推荐师
  • 2026必备!9个AI论文工具,专科生轻松搞定毕业论文!
  • 强烈安利!10个AI论文工具测评,本科生毕业论文必备
  • 1月17号和18号总结
  • 人生死机了?别慌,这是系统升级
  • 【参数优化】基于带动态边界 + 周期性重置 + 惯性权重衰减的粒子群优化三环自动驾驶仪设计二阶 高阶控制系统的双参数控制器附matlab代码