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

0.5*8 边形 != 式

Itst,神。感觉四边形不等式方面的理论学这么多就够了。

子矩阵指选出若干行和若干列,行列交点构成的矩阵;连续子矩阵指选取的行连续且列连续的子矩阵。

四边形不等式

对于矩阵 \(A\),若对于 \(1\leq i_1\leq i_2\leq n\)\(1\leq j_1\leq j_2\leq m\)\(A_{i_2,j_2}+A_{i_1,j_1}\leq A_{i_1,j_2}+A_{i_2,j_1}\),则称 \(A\) 满足四边形不等式。

将式子做变形,得到 \(A_{i_2,j_2}-A_{i_1,j_2}-A_{i_2,j_1}+A_{i_1,j_1}\leq 0\),这同我们熟知的二阶混合差分形式类似,容易发现 \(A\) 满足四边形不等式等价于 \(A\) 的二阶混合差分在除了第一行、第一列处均非正。因此可以 \(O(nm)\) 判定四边形不等式。

单调矩阵

\(\min_i(A)\) 代表 \(A\)\(i\) 行最后一个最小值的位置,若 \(\min_i(A)\) 不降,称为单调矩阵。每个子矩阵都单调的矩阵称作完全单调矩阵。

Lemma1:若 \(A\) 满足四边形不等式,则 \(A\)\(A^T\) 均完全单调。

直接从 \(A\) 的二阶混合差分矩阵出发考虑容易证明。

Lemma2:若 \(A\) 满足四边形不等式,则将 \(A\) 的一列或一行加上常数 \(c\),所得矩阵仍然满足四边形不等式。

从四边形不等式的定义式出发容易证明。

离线决策单调性

考虑 1D-1D 离线决策单调性:

\[f_j=\min\limits_{1\leq k<j}g_k+w_{k,j} \]

构造矩阵 \(A\)

  • \(x>y\)\(A_{x,y}=g_y+w_{x,y}\)
  • \(x\leq y\)\(A_{x,y}=+\infty\)

容易发现 \(f_j=\min_j(A)\),即需要对矩阵 \(A\) 求出每行最小值的位置。当 \(w\) 满足四边形不等式时,\(A\) 也满足四边形不等式。

一点小问题

\(w\) 检查四边形不等式时只需要对所有主对角线下方的位置检查,原因是当主对角线下方满足四边形不等式时,可以构造出其余位置使得其值极大且满足四边形不等式。

我们要对一个完全单调矩阵求出每行最小值所在的位置。直接分治求解可以做到 \(O(m\log n)\)。当矩阵每个位置贡献难算,且不同位置之间增量易算时,考虑分治过程中每层会将行分成若干个连续段,每段会有一个列的连续段代表最小值的位置范围,同时这个位置范围关于行是单调的,容易通过计算位置之间增量来进行分治。

半在线决策单调性

考虑 1D-1D 半在线决策单调性:

\[f_j=\min\limits_{1\leq k<j}f_k+w_{k,j} \]

仍然假设 \(w\) 满足四边形不等式。我们无法如离线情况那样直接分治,因为每行的最小值依赖于前面行的最小值。考虑外层 cdq 分治被动转移,分治过程中会确定 \(1\sim x\) 这些列上的元素。

另一种做法是二分栈,每次加入一列,考虑每行在 \(1\sim x\) 列中的最小值位置,则当前加入的列会覆盖掉行的一段后缀(考察二阶混合差分),二分栈维护。复杂度分析同 ODT。

凸性

记满足四边形不等式的矩阵为蒙日矩阵。

蒙日矩阵的 \(k\) 次幂每个位置关于 \(k\) 凸。

这告诉我们:满足四边形不等式的序列划分问题关于段数是凸的。

http://www.rkmt.cn/news/9820.html

相关文章:

  • [Paper Reading] METAGPT: META PROGRAMMING FOR A MULTI-AGENT COLLABORATIVE FRAMEWORK
  • 四舍六入五成双
  • 借助 Apache Phoenix,使用标准 SQL 和 JDBC 接口来操作 HBase
  • 9月22日
  • 20250922
  • 基于springboot的图书进销存管理系统 - 详解
  • react+antdesign达成后台管理系统面包屑
  • 详细介绍:深入理解 JVM 字节码文件:从组成结构到 Arthas 工具实践
  • (1-10-2)MyBatis 进阶篇 - 教程
  • Spark 性能优化全攻略:内存管理、shuffle 优化与参数调优 - 详解
  • 如何隐藏一个元素
  • 软工9.22
  • 在控制台执行可列出所有placeholder样式
  • 对于一门古老东欧玄学的初步研究的简要报告
  • Java学习笔记:从三个实验看编程思维的锤炼
  • 完整教程:App 上架平台全解析,iOS 应用发布流程、苹果 App Store 审核步骤
  • 题解:AT_arc068_d [ARC068F] Solitaire
  • Codeforces Round 1051 (Div. 2) D1D2题解
  • 深入解析:基于 Kubernetes 的湖仓一体架构部署指南
  • 完整教程:真空发生器的工作原理
  • 【分布式架构实战】Spring Cloud 与 Dubbo 深度对比:从架构到实战,谁才是微服务的王者? - 详解
  • 探展打卡 Serverless,2025 云栖大会来了
  • 贪心算法应用:多重背包启发式疑问详解
  • 划重点|云栖大会「AI 原生应用架构论坛」看点梳理
  • Margin 塌陷问题如何解决?触发BFC。BFC的概念和触发条件
  • 火速收藏!2025 云栖大会 AI 中间件议程看点全公开(附免费报名通道)
  • WinForm引入项目资源文件
  • 训练集,验证集,测试集
  • ESP32 读取旋转编码器
  • 数1的个数