858 Prim演算法求最小生成樹

2021-10-24 17:21:37 字數 976 閱讀 8141

思路:將所有點到集合的距離初始化為正無窮;

進行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...