观察可以发现,对于当前节点 i ,从该节点所有子树中选出一些点后构成的节点集合的 LCA 一定是是节点 i 。
这样子可以分成两种情况考虑:
选择节点 i
在一棵以 1 号节点为根的有根树中,定义一个非空节点集合 S 的统合点为 S 中所有节点的最近公共祖先(即深度最大的公共祖先)。对于每个节点 i,计算统合点恰好为 i 的非空节点集合的个数。由于答案可能很大,请将结果对 109+7 取模。树的节点个数 n 满足 1≤n≤105。
第一行包含一个正整数 n,表示树中节点的个数。 接下来的 n−1 行,每行包含两个整数 u 和 v(1≤u,v≤n),表示树中的一条边。输入保证构成一棵以 1 号为根的合法树。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.