awa(树上邻域数颜色)

发布时间 2023-10-11 15:22:42作者: Shui_dream

虚树+ DP + 树剖 + 二维数点

题意: 给一棵树,每个点有一个颜色,多次查询给定 \(x,d\),询问树上距离某个点 \(x\) 小于等于 \(d\) 的所有点的颜色个数,这些点显然形成一个连通块。

先将询问离线,考虑对于每个点,求出每个颜色对这个点的最小距离,考虑二维数点,来计算出 \(\le d\) 的颜色的数量。

对于每个颜色建立虚树,考虑再这个虚树上 dp,求出 \(f_u\) 表示距离点 \(u\) 最近的颜色 \(C\) 的距离。考虑虚树上右边的两个点之间拉出一条链。
image