CodeForces - 765F

SmileMask發表於2024-08-06

不妨套用P9058的套路,記點對 \((i,j),a_i \ge a_j\) 被支配當且僅當存在 \(i<k<j\),滿足\(a_i \ge a_k \ge a_j\) ,同樣,猜測對於\(i\),不被支配的點對 \((k,i)\) 只滿足 \(k<i\) 最大且 \(a_k>a_i\)

證明不妨使用反證法,記 \(pre\),滿足 \(pre<j<i\)\(a_{pre},a_j>a_i\),假設 \((pre,i)\) 不被支配。

由上得:\((pre,j)\) 權值為 \(|a_j-a_{pre}|\)\((j,i)\) 權值為 \(a_j-a_i\)\((pre,i)\) 權值為 \(a_{pre}-a_i\)

結論得證的條件是 \((pre,i)\) 被支配,此時卻無法確定了,所以結論實際上是不成立的。

我們不妨沿此思路繼續想下去,發掘滿足條件的 \(pre\) 的性質。

考慮固定 \(i\),首先上述的點對 \((k,i)\) 一定是不被支配的,在區間 \([1,k)\) 中,記 \(pre\)\((pre,i)\)\((k,i)\) 更優的位置,滿足 \(pre<k,a_i<a_{pre}<a_k\)

要想不被支配,要滿足在 區間 \([pre,i]\) 中沒有更優的左端點且不被 \((pre,k)\) 支配,條件有:

\[a_{k}-a_{pre}>a_{pre}-a_i \]

整理得:

\[a_i<a_{pre}<\frac{a_i+a_k}{2} \]

繼續找下去,發現每次值域減半,得出結:對於 \(i\),最多隻有 \(log V\) 個有效的左端點。

對於點對 \((i,j),a_i\le a_j\) 同理。

上述過程可使用可持久化權值線段樹維護,統計答案二維數點,總複雜度 \(O(nlogVlogn+mlogn)\)