P9695 [GDCPC2023] Traveling in Cells

启发:同一个区间多个不同的等价类不好维护,可以对不同的等价类维护同一个区间。

因为是要走连续的且颜色在集合中出现的位置,考虑对每个颜色维护 0/10/1 线段树,线段树上二分走的位置(单调性易证),对位置 xx 左右分别找到第一个不合法位置,同时维护区间和即可。

cntcolorcnt_{color} 颗动态开点线段树维护颜色块,树状数组维护权值和。

O((q+n)logn+klogn)O((q+n)\log n+\sum k\log n )

__END__