Luogu6779 [Ynoi2009] rla1rmdq
题意:给定一棵
维护长为
对于
,令 变为 。(特殊地,定义 ) 查询
允许离线,
分块。
对于每个块,记
对于修改或查询中的散块,暴力计算并将
这需要支持快速求树上
接下来只需考虑全局修改和询问的子问题,用于处理整块。
- 观察 :若某个关键点
的祖先存在其他关键点,可以忽略 的贡献。
于是,在树上记录该点是否被经过,若某个关键点的父亲被经过,则可以将其删除。每个点只会被经过一次,这样只会移动
注意,在重构块时,原先被删除的点可能再次跻身候选点之列。
对于删除的点,要打上时间戳,这样在暴力重构时就可以知道要跳多少步。
逐块处理以节省空间。时间复杂度
明天也要开心哦~