最小生成樹模板

2022-04-11 03:31:57 字數 834 閱讀 1077

prim演算法,o(v^2),適用於稠密圖。

1

const

int n=1000;2

const

int inf=0x3f3f3f3f;3

int a[n][n],p[n],low[n];///

鄰接矩陣 

4int prim(intn)5

21}22         p[poi]=1

;23         ans+=mi;

24for(j=1;j<=n;j++)

25if(!p[j])

26                 low[j]=min(low[j],a[poi][j]);27}

28return

ans;

29 }

prim

kruskal,o(eloge)。將邊按權值從小到大排序,列舉每一條邊,若該邊的兩端不在同一集合中,合併集合。直到找到n-1條邊(n為點數)。判斷是否在乙個集合也可以用並查集做。

1

////o(eloge)  適用於稀疏圖

2const

int n=1000;3

const

int m=n*n;

4int

p[n];

5struct

edge

6e[m];

9int

cmp(edge a,edge b)

1013

int kruskal(int n,int

m)1432}

33return

ans;

34 }

kruskal

最小生成樹模板

prim演算法理解可以參考部落格 prim演算法模板 int prime int v int i,j,sum 0,min,k sum是權重和 for i 1 i n i lowcost i 表明當前狀態下在u內距離v點 s中各點 距離的最小值,每個u中點s 中點 都計算 lowcost i map ...

最小生成樹 模板

const int maxn 1010 const int maxm 200020 struct edge edges maxm int father maxn int find int x int cmp edge a,edge b 將邊按權值排序 int kruskal int n,int m ...

模板 最小生成樹

題目描述 如題,給出乙個無向圖,求出最小生成樹,如果該圖不連通,則輸出orz 輸入輸出格式 輸入格式 第一行包含兩個整數n m,表示該圖共有n個結點和m條無向邊。n 5000,m 200000 接下來m行每行包含三個整數xi yi zi,表示有一條長度為zi的無向邊連線結點xi yi 輸出格式 輸出...