CF1762F Good Pairs

Anonymely發表於2024-10-03

找到關鍵性質:若 \(a_x \ge a_y \le a_z, |a_x - a_y| \ge k, |a_y -a_z|\ge k\),則 \(|a_x-a_z|\ge k\),這意味著子序列一定不增或不減,兩個單獨做即可,下面以單調不減為例。

考慮固定左端點如何計算答案,找到第一個 \(j\) 滿足 \(a_l \le a_j \le a_i + k\),發現所有滿足 \(a_r \ge a_j\) 的方案都在其中,剩下的是 \(a_r \in [a_i, a_j)\),對於這一部分一定滿足 \(|a_r -a_l| \ge k\),於是只需要對這一部分計數即可。

找到 \(j\) 和求字尾內一段值域區間個數都可以線段樹維護,複雜度 \(O(n \log n)\)

submission

相關文章