$Problem’s\ Website$
$Problem’s\ Description$
- 给定一个序列,每次操作使区间[$l - r$]翻转。
$Solution$
因为本人暂时不会$\mathfrak{Splay}$,所以这题我用$\mathfrak{fhq-Treap}$来写。
思路还是比较明确的,将要翻转的区间分裂出来,然后维护一个翻转标记(类似于线段树的$\mathrm{Lazy\ Tag}$)。
关于如何分裂,大家可以打一下草,我们先以$l - 1$将区间分成$r1,r2$两段,再在$r2$的区间中以序列长度($r-l+1$)分成$r2,r3$两段,那么$r2$就是目标区间。
$Code$
1 | //Coded by Dy. |
$\mathrm{rp++}$