(次小生成樹)Unique Tree

2021-09-10 09:31:16 字數 721 閱讀 7634

判斷圖的最小生成樹是否唯一,用次小生成樹與最小生成樹是否相等判斷

對於最小生成樹mst,在其中加入一條不屬於mst的邊,會出現環,我們刪掉其中最長的邊。對於列舉所以不屬於mst的邊後刪掉環的最長邊的結果的最小值既是次小生成樹的答案

#include #include #include #include #include #include #include using namespace std;

const int inf = 0x3f3f3f3f;

const int maxn = 100 + 3;

int g[maxn][maxn], f[maxn][maxn], n;

void prim() }}

for(int j = 0; j < k; j++)

g[s][e] = g[e][s] = inf;

p[k++] = e;

vis[e] = 1;

sum += min;

}int *** = 1, sign = 0;

for(int i = 1; i <= n; i++) }}

if(*** && sign) printf("not unique!\n");

else printf("%d\n", sum);

}int main()

prim();

}}

最小生成樹 次小生成樹

一 最小生成樹 說到生成樹首先要解釋一下樹,樹是乙個聯通的無向無環圖,多棵樹的集合則被稱為森林。因此,樹具有許多性質 1.兩點之間的路徑是唯一的。2.邊數等於點數減一。3.連線任意兩點都會生成乙個環。對於乙個無向聯通圖g的子圖,如果它包含g的所有點,則它被稱為g的生成樹,而各邊權和最小的生成樹則被稱...

次小生成樹

演算法引入 設g v,e,w 是連通的無向圖,t是圖g的一棵最小生成樹 如果有另一棵樹t1,滿足不存在樹t t t1 則稱t1是圖g的次小生成樹 演算法思想 鄰集的概念 由t進行一次可行交換得到的新的生成樹所組成的集合,稱為樹t的鄰集,記為n t 設t是圖g的最小生成樹,如果t1滿足 t1 min,...

次小生成樹

分類 圖論 2013 02 12 15 03 32人閱讀收藏 舉報次小生成樹 在求最小生成樹時,用陣列path i j 來表示mst中i到j最大邊權。求完後,直接列舉所有不在mst中的邊,把它加入到mst中構成一棵新的樹,且該樹有環,此環是由剛加入的邊 i,j 造成的,所以可以通過刪除path i ...