题目:http://hzwer.com/3708.html
分析:
类似树分治思想,设f[x][i]表示以x为根的子树的所有点中,与x的距离为i的点有多少个,这个可以预处理出来
然后我们考虑每颗子树对ans的贡献
1、以x为起点的某条链i,ans+=f[x][i]
2、以x为起点的两颗不同的子树i,j:
如果把“异或”看作“和”,那么就是两个子树对应的f[]相乘(其实就是母函数啦)
但是这里是“异或”啊!!其实只要把作乘法时候的系数不要变,指数xor一下就行
比如说正常的乘法:{1,3}*{1}==(x+3x^2)*(x)==x^2+3x^3
这里就是{1,3}^{1}==(x+3x^2)^(x)==x^(1^1)+3x^(1^2)==x^0+3x^3
时间: 2024-09-29 09:27:45