這個東西叫次小生成樹

2021-08-09 20:16:31 字數 929 閱讀 5689

#include 

using

namespace

std;

const

int n = 110000;

const

int m = 220000;

const

int inf = 100000000;

int n, m, t, ans1, ans2, ise[n], f[n];

struct edge

e[m];

bool cmp(edge a, edge b)

int find(int x)

}int kru()

for(int i = 0; i < m; ++i)

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

}if(num > 1)

return inf;

else

return ans;

}int kru1(int del)

for(int i = 1; i <= n; ++i) if(i == find(i)) num++;

if(num > 1) return inf;

else

return ans;

}int main()

sort(e, e + m, cmp);

ans1 = kru(), ans2 = inf;

for(int i = 0; i < n - 1; i++)

printf("%d %d\n", ans1, ans2);

}return

0;}/*kru()是大家熟悉的最小生成樹,但是kru1()就有了變化,他有了乙個引數,就是要刪除的那個邊,我們只需要在讀到那條邊的時候就continue就好了,然後for迴圈列舉刪除每一條邊,ans2取最小的那個就是次小生成樹的*/

最小生成樹 次小生成樹

一 最小生成樹 說到生成樹首先要解釋一下樹,樹是乙個聯通的無向無環圖,多棵樹的集合則被稱為森林。因此,樹具有許多性質 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 ...