思路:將所有點到集合的距離初始化為正無窮;
進行n次迴圈;
找到不在集合中且到集合距離最近的點;
用找到的點來更新其它點到集合的距離;
#include
#include
#include
#include
using
namespace std;
const
int n =
510;
int n, m;
int g[n]
[n];
int dist[n]
;bool st[n]
;int
prim()
}
st[t]
=true;if
(i && dist[t]
==0x3f3f3f3f
)return
0x3f3f3f3f;if
(i) ans +
= dist[t]
;for
(int j =
1; j <= n; j ++
) dist[j]
=min
(dist[j]
, g[t]
[j]);}
return ans;
}int
main()
int t =
prim()
;if(t ==
0x3f3f3f3f
)printf
("%s\n"
,"impossible");
else
printf
("%d\n"
, t)
;return0;
}來自acwing
858 Prim演算法求最小生成樹
給定乙個n個點m條邊的無向圖,圖中可能存在重邊和自環,邊權可能為負數。求最小生成樹的樹邊權重之和,如果最小生成樹不存在則輸出impossible。給定一張邊帶權的無向圖g v,e 其中v表示圖中點的集合,e表示圖中邊的集合,n v m e 由v中的全部n個頂點和e中n 1條邊構成的無向連通子圖被稱為...
AcWing 858 Prim演算法求最小生成樹
題目描述 給定乙個n個點m條邊的無向圖,圖中可能存在重邊和自環,邊權可能為負數。求最小生成樹的樹邊權重之和,如果最小生成樹不存在則輸出impossible。給定一張邊帶權的無向圖g v,e 其中v表示圖中點的集合,e表示圖中邊的集合,n v m e 由v中的全部n個頂點和e中n 1條邊構成的無向連通...
Prim演算法求最小生成樹
本文參考 google 資料結構 c語言 prim演算法,求最小生成樹 include include 最小生成樹prim define max 65535 using namespace std struct graph int prim graph g flag 0 1 將0號結點加入集合s i...