首先可以转化问题,变为对每种颜色分别考虑不含该颜色的简单路径条数.然后把不是当前颜色的点视为白色,是当前颜色的点视为黑色,显然路径数量是每个白色连通块大小的平方和,然后题目变为:黑白两色的树,单点翻转颜色,维护白色连通块大小平方和,然后根据Auuan大佬的题解,我用了LCT.就是对每个点维护子树.儿子大小平方和,在 link/cut 的时候更新答案.初始化所有点是白色,离线处理每个颜色即可. 这题放在2h比赛上,除了lxl其他人都写不出来(况且lxl还是本题出题人呢) #include<bits…