Luogu5311 [Ynoi2011] 成都七中
题意:给出一棵
有
允许离线,
首先建立点分树。
将询问挂在
这一步有点学问,需要找到
某个点在联通块中当且仅当到当前根的路径上的点在
不难想到给每个点记录到根路径的最大编号
开始时,我们把询问挂在点
由于本题允许离线,一边点分治,一边查看分治块内挂着的(未回答过的)询问是否能与重心连通,若连通则拿下来处理。(不需要显式地建立点分树,正如猫树分治不需要显式建立猫树)
下面来处理一个分治块的所有询问。
可以把所有点先按照
加入二元组
。 查询满足
的本质不同的 有多少个。
不难发现某个
所以只用给每种颜色维护
前缀求和使用树状数组。
综上我们就以