前言
快要省选了。。
抽点时间复习一下东西
以免漏了一些东西
为了在省选之前觉得自己什么都会
无根树转prufer序列
每一次选择一个编号最小,并且度数为1的点
把它删掉
然后让他唯一连向的点加入prufer序列
如果只有两个点就结束
prufer序列转无根树
这个的话,你可以理解为有一个数组a
表示每一个数在prufer里面出现的次数
然后每一次,你就选出prufer序列里面的第一个数x
然后在a数组里面,找一个值为0的数y
然后连边
x
—
—
>
y
x——>y
x——>y
然后x和y在a的值就减一
也就是y以后就不会出现了
然后a数组最后肯定还有两个0,就把他们连起来
一些性质
1.prufer序列里面,每一个点的出现次数等于他的度数-1
2.一棵n个节点的无根树唯一地对应了一个长度为n-2的数列
3.n个点的无向完全图的生成树的计数:
n
(
n
−
2
)
n^{(n−2)}
n(n−2)
4.如果告诉你每一个点的度数
s
[
i
]
s[i]
s[i],问你有多少种方案
那么可以排列组合算出来
(
n
−
2
)
!
/
(
w
[
1
]
!
∗
w
[
2
]
!
∗
w
[
3
]
!
.
.
.
)
(n-2)! / (w[1]!*w[2]!*w[3]!...)
(n−2)!/(w[1]!∗w[2]!∗w[3]!...)
5.如果是有根树话,你只需要算出无根树的个数,然后
∗
n
*n
∗n就可以了