line
一个结论是, Lk(T) L k ( T ) 的每个节点在原树上是一个不超过 k+1 k + 1 个点的连通块。
考虑用括号序列枚举所有不同的有根树,利用树哈希来去重,这样的树大概 1000 1000 个,然后答案就是它的贡献乘上它在原树上的出现次数。
在原树上的出现次数可以直接状压DP,可以加一个剪枝,就是叶子单独提出来最后用组合数计算,注意要除以自同构的方案数。
一棵有根树 T T 的贡献可以计算 的节点数 VLk(T) V L k ( T ) ,然后枚举它的所有连通子树,去掉属于它们的节点数。
考虑如何计算 VLk(G) V L k ( G ) ,记 di d i 表示 i i 的度数:
VL2(G)=∑di(di−1)2 V L 2 ( G ) = ∑ d i ( d i − 1 ) 2
VL3(G)=∑di(di−1)(di−2)2+∑e(du−1)(dv−1) V L 3 ( G ) = ∑ d i ( d i − 1 ) ( d