原论文
(Monge 大概就是满足四边形不等式的意思……)
一切还要从某位毒瘤把邮局加强到 5×105 还自己不会证明说起
感谢 gcz、rushcheyo 和 300iq 帮助我找到了这篇轮文
首先定义“满足四边形不等式的序列划分问题”:
给出 n,k 和一个 (n+1)×(n+1) 的矩阵 ci,j,你需要给出一个长度为 k+1 的序列 p0=0<p1<p2<…<pk−1<pk=n,定义该序列的价值为 k∑i=1cpi−1,pi。你需要求出所有合法的序列的最小价值。
其中特殊性质是矩阵 c 满足四边形不等式,即 ∀i<j≤k<l,ci,k+cj,l≤ci,l+cj,k。
先给出结论:设当 k=p(p∈[1,n−1]) 时答案为 f(p),f′(p)(p∈[2,n−1])=f(p−1)−f(p),则 f′(p) 单调不增,即 ∀q∈[3,n−1],f′(q)≤f′(q−1)。
为此我们需要证明以下结论:
- ∀1≤s<r<t≤n−1,f(r)+f(s+t−r)≤f(s)+f(t)。
Proof.
设序列 P 为 f(s) 对应的最优解,序列 Q 为 f(t) 对应的最优解,Δ=r−s。我们首先证明存在 x∈[0,s−1] 满足 Px<Qx+Δ<Qx+Δ+1≤Px+1:
- 对于 x=0,P0=0<QΔ<QΔ+1 总是成立,这是因为 Δ>0。于是若 QΔ+1≤P1 那么 x=0 就满足条件。
- 否则,P1<QΔ+1<QΔ+2 就是成立的,这对应了 x=1 的情况,于是若 QΔ+2≤P2 那么 x=1 就满足条件。
- 我们不断这样做下去,即如果 x=i 不满足条件,那么对于 x=i+1 就只需要判断 Qx+Δ+1≤Px+1 是否满足条件,若不满足条件那么继续考虑 Qx+Δ+2≤Px+2。然而 Qs+Δ≤Ps=n,所以这个过程不会无限进行下去,也就是说我们总是能找到这样的 x。
此时考虑两个序列 R={P0,P1,…,Px,Qx+Δ+1,…,Qt},S={Q0,Q1,…,Qx+Δ,Px+1,…,Ps}。显然 R 和 S 分别是 k=s+t−r 和 k=r 的一组合法解。
设某个序列 X 的权值为 w(X),那么 w(R)+w(S)−w(P)−w(Q)=cPx,Qx+Δ+1+cQx+Δ,Px+1−(cPx,Px+1+cQx+Δ,Qx+Δ+1)
而根据四边形不等式上式 ≤0,同时 f(r)+f(s+t−r)≤w(R)+w(S),故 f(r)+f(s+t−r)≤f(s)+f(t),结论成立。
使用以上结论有 f(x)+f(x)≤f(x−1)+f(x+1),即 f(x−1)−f(x)≥f(x)−f(x+1),即 f′(x)≥f′(x+1),故结论成立。
这意味着答案对于段数是一个下凸的函数,可以使用斜率凸优化等技巧优化。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2019-04-29 Luogu4755 Beautiful Pair 最值分治、主席树