CodeForces - 765F

不妨套用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)\)

posted @ 2024-08-06 14:14  SmileMask  阅读(11)  评论(0编辑  收藏  举报