(翻译)浅谈满足四边形不等式的序列划分问题的答案凸性
(Monge 大概就是满足四边形不等式的意思……)
一切还要从某位毒瘤把邮局加强到 \(5 \times 10^5\) 还自己不会证明说起
感谢 gcz、rushcheyo 和 300iq 帮助我找到了这篇轮文
首先定义“满足四边形不等式的序列划分问题”:
给出 \(n,k\) 和一个 \((n+1) \times (n+1)\) 的矩阵 \(c_{i,j}\),你需要给出一个长度为 \(k+1\) 的序列 \(p_0 = 0 < p_1 < p_2 < \ldots < p_{k-1} < p_k = n\),定义该序列的价值为 \(\sum\limits_{i=1}^k c_{p_{i-1},p_i}\)。你需要求出所有合法的序列的最小价值。
其中特殊性质是矩阵 \(c\) 满足四边形不等式,即 \(\forall i < j \leq k < l,c_{i,k} + c_{j,l} \leq c_{i,l} + c_{j,k}\)。
先给出结论:设当 \(k=p(p \in [1,n-1])\) 时答案为 \(f(p)\),\(f'(p)(p \in [2,n-1]) = f(p-1) - f(p)\),则 \(f'(p)\) 单调不增,即 \(\forall q \in [3,n-1],f'(q) \leq f'(q-1)\)。
为此我们需要证明以下结论:
- \(\forall 1 \leq s < r < t \leq n-1\),\(f(r) + f(s + t - r) \leq f(s) + f(t)\)。
Proof.
设序列 \(P\) 为 \(f(s)\) 对应的最优解,序列 \(Q\) 为 \(f(t)\) 对应的最优解,\(\Delta = r - s\)。我们首先证明存在 \(x \in [0,s-1]\) 满足 \(P_x < Q_{x+\Delta} < Q_{x + \Delta + 1} \leq P_{x+1}\):
- 对于 \(x=0\),\(P_0 = 0 < Q_{\Delta} < Q_{\Delta + 1}\) 总是成立,这是因为 \(\Delta > 0\)。于是若 \(Q_{\Delta + 1} \le P_1\) 那么 \(x=0\) 就满足条件。
- 否则,\(P_1 < Q_{\Delta + 1} < Q_{\Delta + 2}\) 就是成立的,这对应了 \(x=1\) 的情况,于是若 \(Q_{\Delta + 2} \le P_2\) 那么 \(x=1\) 就满足条件。
- 我们不断这样做下去,即如果 \(x = i\) 不满足条件,那么对于 \(x=i+1\) 就只需要判断 \(Q_{x + \Delta + 1} \le P_{x+1}\) 是否满足条件,若不满足条件那么继续考虑 \(Q_{x + \Delta + 2} \le P_{x+2}\)。然而 \(Q_{s + \Delta} \le P_s = n\),所以这个过程不会无限进行下去,也就是说我们总是能找到这样的 \(x\)。
此时考虑两个序列 \(R = \{P_0,P_1, \ldots, P_x,Q_{x + \Delta + 1},\ldots,Q_t\} , S = \{Q_0,Q_1,\ldots,Q_{x + \Delta},P_{x+1},\ldots,P_s\}\)。显然 \(R\) 和 \(S\) 分别是 \(k=s+t-r\) 和 \(k=r\) 的一组合法解。
设某个序列 \(X\) 的权值为 \(w(X)\),那么 \(w(R)+w(S)-w(P)-w(Q) = c_{P_x,Q_{x+\Delta+1}}+c_{Q_{x+\Delta},P_{x+1}}-(c_{P_x,P_{x+1}}+c_{Q_{x+\Delta},Q_{x+\Delta+1}})\)
而根据四边形不等式上式 \(\leq 0\),同时 \(f(r) + f(s+t-r) \leq w(R)+w(S)\),故 \(f(r) + f(s+t-r) \leq f(s) + f(t)\),结论成立。
使用以上结论有 \(f(x) + f(x) \leq f(x-1)+f(x+1)\),即 \(f(x-1)-f(x) \geq f(x)-f(x + 1)\),即 \(f'(x) \geq f'(x+1)\),故结论成立。
这意味着答案对于段数是一个下凸的函数,可以使用斜率凸优化等技巧优化。