送你一棵圣诞树

求一遍dfs序,然后对于两个同种相邻颜色的lca的id[x]-=1,

然后用树套树维护,用树状数组维护颜色,线段树维护区间权值和。

然后还要用一个set记录颜色的位置。

具体看代码、

(可读性“极佳”

c++代码如下:

 

8 + 8 =