prufer編碼學習筆記

2022-02-27 09:43:59 字數 840 閱讀 7128

對於乙個無根樹,他的 prufer 編碼是這樣確定的:

那麼,通過給定的無根樹求 prufer 編碼就很簡單了

比如下面這個無根樹,它的 prufer 編碼就是\(\texttt\)

這個 prufer 編碼有一些很顯然的性質

首先長度肯定是\(n-2\),但每個元素可能相同,然後對於每個無根樹,它的 prufer 編碼肯定也唯一

如果編碼的每個元素都相同,那麼它可以是乙個編號最大的點連向其它所有點(特殊的菊花圖),如果都不同,可以是乙個鏈

當然,這裡說「可以」是因為有可能還存在其它的構造方式

那麼,prufer 編碼對應的樹是否唯一?

也就是說,每乙個編碼是不是只能求出唯一的樹?

是可以的,先給出求的方式:

設這棵樹點的集合為\(v\),初始狀態下\(v=\\)

然後驗證一下剛才那個圖,發現是正確的

可以感性理解一下,編碼序列的第乙個數,就是我們第一次刪除葉子節點以後新增的它的相鄰節點,而這個被刪掉的節點肯定不在編碼中,它也是序號最小的,所以還原樹的時候就要把它和它相鄰的那個被新增到編碼中的點連邊

然後每次都這樣做就得出了原樹

又因為在找編碼的時候最後剩了兩個節點,那兩個節點肯定是連在一起的,所以這就是為什麼要把\(v\)中剩下的兩個點連邊

所以,上面通過 prufer 編碼求樹的操作,也是唯一的

那麼可以得出一下更深入的性質:

然後有一些題,這些在tulun-prufer編碼的分類中有題解

p4430 小猴打架

p4981 父子

p2290 [hnoi2004]樹的計數

p2624 [hnoi2008]明明的煩惱

prufer數列學習筆記

學了一種新姿勢叫prufer數列,可以用來解一些關於無根樹計數的問題。prufer數列是一種無根樹的編碼表示,對於一棵n個節點帶編號的無根樹,對應唯一一串長度為n 2的prufer編碼。1 無根樹轉化為prufer序列。首先定義無根樹中度數為1的節點是葉子節點。找到編號最小的葉子並刪除,序列中新增與...

prufer 序列 學習筆記

上周五看了一下,發現不是很難,今天再看了一眼,把板題做了,順便看了另外一道 懶得碼了 其實很簡單,我們定義一顆無根樹的 prufer 序列為,欽定任意乙個點為根 方便確定父子關係 每次從葉子中選出乙個編號最小的點,把它的父親加入到 prufer 序列中,並刪掉該節點。不難看出,我們最後會有 n 2 ...

prufer編碼與Cayley公式

prufer編碼 與 bzoj1430小猴打架 將樹轉化成prufer數列的方法 一種生成prufer序列的方法是迭代刪點,直到原圖僅剩兩個點。對於一棵頂點已經 經過編號的樹t,頂點的編號為,在第i步時,移去所有葉子節點 度為1 的頂點 中標號最小的頂點和相連的邊,並把與它相鄰的點的編號加入pruf...