(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}\)。此時考慮兩個序列 \(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)\),故結論成立。
這意味着答案對於段數是一個下凸的函數,可以使用斜率凸優化等技巧優化。