快乐的一天从AC开始 | 20210724 | P3203

题目链接

(补20210719)

心路历程

复习分块

思路

其实可以用LCT搞,这个做法之后再复习。

分块的话就是对每一个位置维护(cost_i)(to_i),分别表示跳出所属块的步数和跳出去后的位置。逆序处理,可以做到(O(n))

查询的话就是一块一块跳,至多跳(sqrt{n})次。

修改的话,就是暴力重构当前块,其实如果修改(p)的话只修改(p)之前的位置就可以了,逆序做可以搞到(O(sqrt{n}))

莫队,分块这种优美的暴力是真的爽,学了好几年了,依旧觉得写起来一场舒服

原文地址:https://www.cnblogs.com/zengzk/p/15055599.html