2020.10.12

给定一棵树。对于每个\(l\),求有多少对\((x,y)\)满足,\(dis(x,y)=l\)

容易想到用点分治,对于每棵点分树用fft合并答案,注意要把对应的子树按\(size\)从小到大排序再依次按对应的大小fft合并。对于单个\(n\),时间复杂度\(T(n) = \sum x_i\log x_i\),且有\(\sum x_i = n\),可以证明\(T(n) = n\log n\),所以总时间复杂度为\(O(n\log^2 n)\)

如果不排序,\(T(n) = \sum n\log n\),无法通过

posted @ 2020-10-12 21:03  chenyilei  阅读(84)  评论(0编辑  收藏  举报