题意:给定一棵树,有点权a[],有边权. 现在有M次修改点权的操作,输出每次修改后,Σ(a[i]^a[j])*dis(i,j); 思路:因为待修改,我们需要快速得到以及修改一个点到其他所有点的信息. 肯定就是动态点分治了啊. 而异或这个操作没有什么累加的性质,所以每一位拆开单独计算. 根据二进制位置和01区别,先建立14*2点分树.然后每次在同一位置,不同值的树上累加答案. 因为计算dis的过程会重复很多次,所以可以用个dd数组,减少重复统计,然后就用1400ms变成 了960ms. #incl…