dsu on tree 小记
要求:
- 静态,离线
- 一个点的信息从子树合并过来
过程:首先我们需要知道,对于每个点,可以选一个子树的信息作为初值再合并,显然重儿子最好。先求重儿子,每次先处理完轻儿子(不保留),之后遍历重儿子的信息并保留,再将轻儿子的信息合并。时间复杂度 \(\mathcal{O}(n \log n)\)。
例题:
树上数颜色,CF1009F,CF741D。
要求:
过程:首先我们需要知道,对于每个点,可以选一个子树的信息作为初值再合并,显然重儿子最好。先求重儿子,每次先处理完轻儿子(不保留),之后遍历重儿子的信息并保留,再将轻儿子的信息合并。时间复杂度 \(\mathcal{O}(n \log n)\)。
例题:
树上数颜色,CF1009F,CF741D。