「ZJOI2019」语言 3个\(\log\)做法比较简单,但是写起来还是有点麻烦的. 大概就是树剖把链划分为\(\log\)段,然后任意两段可以组成一个矩形,就是个矩形面积并,听说卡卡就过去了. 好像这个可以被优化到两个\(\log\),算了,估计挺麻烦的. 一个\(\log\)的做法看起来还挺厉害的. 考虑钦定某个点算它的贡献,于是我们要算的是所有经过它的链的并的大小. 但是染色这个东西看起来就很不可搞,我们可以挖掘一下这个并的简单性质. 注意到,这个并是联通的,可以看做是一个生成子树,然后…