生成樹和生成森林

2021-08-09 14:04:28 字數 640 閱讀 7367

1、無向圖的生成樹和生成森林

對於無向連通圖,在圖的深度優先遍歷或廣度優先搜尋遍歷過程中經歷的邊的集合和 圖中的所有頂點一起構成圖的極小連通子圖,就是一顆生成樹(深度優先生成樹、廣度優先生成樹)。

對非連通無向圖,深度優先搜尋遍歷或廣度優先搜尋遍歷,每個連通分量中的頂點集合遍歷時走過的邊一起構成若干顆生成樹,這些連通分量的生成樹組成非連通圖的生成森林(深度優先生成森林、廣度優先生成森林)。

深度優先搜尋中的圖7-25和圖7-26的dfs生成樹、bfs生成樹、生成森林如下:

dfs生成樹:

bfs生成樹、bfs生成森林:

2、有向圖的生成樹和生成森林

對強連通有向圖,用dfs和bfs演算法可分別求得dfs和bfs生成樹。對非強連通圖,則一般只能得到生成森林。

無向圖或有向圖的生成樹或生成森林不唯一(選出發點不唯一)。

最大生成樹 最大權森林

題意 給定n個男生和m個女生的關係,各個關係具有一定的權值,然後要挑選出所有人,每個人的代價是10000,但挑選人的過程中這些權值就是可以用來減去費用,求cost的min include include include include using namespace std const int m ...

最小生成樹和最大生成樹

生成樹 spanning tree 乙個連通無向圖的生成子圖,同時要求是樹。也即在圖的邊集中選擇n 1條,將所有頂點連通。最小生成樹為乙個有 n 個結點的連通圖的生成樹是原圖的極小連通子圖,且包含原圖中的所有 n 個結點,並且有保持圖連通的最少的邊。最小生成樹可以用kruskal 克魯斯卡爾 演算法...

hdu 3367 偽森林,not 最大生成樹

感覺題意很扭曲。不是求最大生成樹!給乙個圖,求pseudoforest偽森林,要求每個連通分量最多可以有乙個環。求能構成的最大值。錯誤寫法,求出最大生成樹 最大的邊 正確寫法 在求最大生成樹的思路的基礎上每次判斷一下環的問題 6 7 0 1 9 0 2 6 1 2 8 3 4 5 4 5 5 3 5...