【noip模拟】2022

source: sdfzoj


3.15 T3 挑战

方便起见把条件改为 \(2a_{i}=s_{i}\)

\(O(n\sqrt{n})\):分块,每块对 \(2a_{i}-s_{i}\) 维护哈希表。常数原因只能获得 60pts

\(O(n\log n\log10^{9})\):注意到若有 \(a_{i}-s_{i-1}>0\),那么 \(s_{i}>2s_{i-1}\),这样的位置只有 \(\log10^{9}\) 个。使用线段树维护区间 \(\max\{2a_{i}-s_{i}\}\),对上述位置分成的 \(\log\) 个区间线段树二分。实现上只需要 DFS 线段树并剪枝即可,跑得飞快

posted @ 2022-03-23 20:54  401rk8  阅读(36)  评论(0编辑  收藏  举报