QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: jiangly

Posted at: 2026-02-19 13:13:02

Last updated: 2026-02-19 13:13:07

Back to Problem

题解

注意到每个递减段都是公差为 $-1$ 的等差数列,因此递减段之间是不会相交的。考虑递减段分别是 $[l_1,r_1],\ldots,[l_k,r_k]$,则 $i$ 属于 $[l_j,r_j]$ 时必定有 $a_i+i=l_j+r_j$。令 $b_i=a_i+i$,则 $b_i$ 必须递增,且每个 $b_i$ 相等的段需要选择尽可能短的区间,使得这些区间不相交。区间查询时,假设已经确定的连续两段是 $[x,y]$ 和 $[z,w]$,则有限制 $\max\{b_x+l-x,y\}<\min\{b_z+l-w,z\}$,也即限制形如 $l$ 属于某个区间,只需要用 RMQ 并且特殊处理开头和结尾的段即可。时间复杂度 $O(n+q)$。

Comments

No comments yet.