最小生成樹模板

2021-10-09 18:22:29 字數 960 閱讀 4836

/*

prim演算法:找到當前最小的點加入生成樹 然後用這個點更新其他沒有加入生成樹的點到生成樹的距離

時間複雜度 n^2

*/#include

#include

#include

#include

using namespace std;

const

int n =

1e3;

int e[n]

[n];

int n;

bool st[n]

;//標記這個點是否加入了生成樹

int dis[n]

;//標記這個到生成樹的距離

intprim()

return ans;

}int

main()

/*

kruskal演算法:貪心思想 對所有的邊進行排序 然後從小的邊開是看 如果兩個點不在乙個聯通塊內則將他們聯通

時間複雜度 mlogm

*/#include

#include

#include

#include

#define x first

#define y second

using namespace std;

const

int n =

1000

;typedef pair<

int,

int> pii;

typedef pair<

int,pii> piii;

int f[n]

;int n,m;

piii edge[n]

;int

find

(int x)

intmain()

} cout

}

最小生成樹模板

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 輸出格式 輸出...