最小生成樹基礎

2021-08-17 13:55:46 字數 662 閱讀 7373

基礎分析20180325ls

前置演算法:鄰接表的使用,排序,並查集,圖的遍歷;

概念:一張圖中,給出n個點,m條邊,每條邊有權值,求:用最少的邊權使全圖聯通。

概念分析:其實概念中的最小,包含了2個方面:

1 是邊的數量最小:乙個圖要完全聯通,只需要(n-1)條邊,這樣又不會成環,所以就是樹;

2 要求邊權和最小,所以任意兩點之間如果有多條邊可選的話,要選盡可能小的;

k演算法思路:

1 對全部邊,按權來排序;

2 從小到大取邊,詢問當前的邊i:b[i].x

與b[i].y是否聯通?(用並查集來詢問);

3 如果x和y聯通,當前的i邊就不選;如果x和y不聯通,就選擇這個i邊;

4 直到我選了(n-1)條邊,表示全圖已經聯通,gg。

最小生成樹的演算法一般有2個,p和k。

我們主要學習k

演算法:

1、繁忙的都市(學習一下出題的表述能力,如何放煙霧彈)

2、聰明的猴子(學會求:座標系中,兩點之間的距離)

3、公路修建問題(最大和最小生成樹)

4、tree(要求會用二分,思路比較巧妙)

最小生成樹基礎

0.1 本文總結於 資料結構與演算法分析,源 均為原創,旨在 review 最小生成樹的基礎知識 0.2 了解本文的內容是 分析prim演算法 普利姆演算法 和 kruskal演算法 克魯斯卡爾演算法 的前提 1.1 我們考慮的問題 在乙個無向圖中找出一顆最小生成樹。乙個無向圖g的最小生成樹就是由該...

最小生成樹基礎演算法

prim演算法求最小生成樹 與dijkstra演算法類似,dijkstra演算法是計算乙個節點到其他節點的最短路,prim演算法是需要維護節點到乙個集合的距離最小值,優化方式也是類似的,只需要用堆來維護距離即可 include using namespace std const int n 510,...

最小生成樹 次小生成樹

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