一道点分难题 首先很自然的想法就是每种颜色的贡献可以分开计算,然后如果你会虚树就可以直接做了 点分也差不多,考虑每个分治重心的子树对它的贡献以及它对它子树的贡献 首先,处理一个\(cnt\)数组,\(cnt[i]\)表示从重心出发有多少条包含i颜色的路径,具体做法就是dfs,当该颜色第一次出现时就加上当前子树的size,还要记录子树中出现了哪几种颜色,不能每次都枚举所有颜色,显然,对分治重心的贡献就是\(\sum cnt[i]\). 接下来计算分治重心对子树内的贡献,比较麻烦,首先对每颗子树求出…