最小生成樹板子

2021-08-27 21:10:34 字數 975 閱讀 7899

如題,給出乙個無向圖,求出最小生成樹,如果該圖不連通,則輸出orz

輸入格式:

第一行包含兩個整數n、m,表示該圖共有n個結點和m條無向邊。(n<=5000,m<=200000)

接下來m行每行包含三個整數xi、yi、zi,表示有一條長度為zi的無向邊連線結點xi、yi

輸出格式:

輸出包含乙個數,即最小生成樹的各邊的長度之和;如果該圖不連通則輸出orz

如題,給出乙個無向圖,求出最小生成樹,如果該圖不連通,則輸出orz

輸入格式:

第一行包含兩個整數n、m,表示該圖共有n個結點和m條無向邊。(n<=5000,m<=200000)

接下來m行每行包含三個整數xi、yi、zi,表示有一條長度為zi的無向邊連線結點xi、yi

輸出格式:

輸出包含乙個數,即最小生成樹的各邊的長度之和;如果該圖不連通則輸出orz

#include#include#include#include#includeusing namespace std;

const int maxn=2e5+10;

int pre[5010];

struct node

p[maxn];

void init(int n)}

int find(int x)

bool cmp (node x,node y)

void mix(int x,int y)}

int main()

sort(p+1,p+n+1,cmp);

int num=0,ans=0;

init(m);

for(int i=1;i<=n&&num}

if(num==m-1)

else

}return 0;

}

最小生成樹 Kruskal演算法 板子

比prim演算法更優秀,並且更好理解。但是需要借助並查集的知識 並查集演算法 如果不清楚並查集,可以去看看這篇,順便a下板子題 kruskal板子題 演算法思路 先把邊按照權值進行排序,用貪心的思想優先選取權值較小的邊,並依次連線,判斷是否這倆個點連通 用並查集來判斷是否存在環 然後繼續搜。incl...

最小生成樹 次小生成樹

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

最小生成樹

package 圖 最小生成樹是用最少的邊吧把所有的節點連線起來。於是和圖的深度優先搜素差不多。class stack public void push int key public int pop 檢視棧頂的元素 public int peek public boolean isempty cla...