最小生成樹訓練總結

2021-10-05 17:22:18 字數 490 閱讀 5909

最小生成樹簡單概念:

在數個點間,兩點之間存在權值,求若涉及所有的點時,權值之和最小。

常用演算法:

1.prim演算法

首先將每乙個點之間的距離都定為最大值,把第乙個點的最小距離設為零,在與第乙個點有聯絡的每乙個點中找出權值最小的點,依此規律進行迴圈,直到找到所有的點。

例:最優佈線問題中的迴圈部分

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

{ if(u[j]&&(minn[j]2.kruskal演算法

首先把每乙個點都定為乙個集合,並且每次選擇乙個最小的點,把它放入乙個集合裡,注意如果集合裡已經有那個點 ,則與這個點直接連線的點就不能再次加入集合,由於每次加入的也是最小的邊,所以可以得出最小生成數。

個人感想:

對一般的問題而言,基本上首先採用第乙個演算法,不過有的時候第乙個演算法可能會超時,所以對題目中採用資料的範圍要注意一些。更普遍地來這樣兩者基本上都有貪心的演算法,所以感覺這部分的題應該有些可以直接用貪心的做法來解決。

日常訓練 最小生成樹

問題描述 話說正在jmy愁苦如何籌錢給大家買汽水的時候,他遇上了一位魔法師。魔法師希望jmy能幫他破解魔法書的咒語。如果jmy做到了,就幫他付所有買汽水的錢。魔法書上畫了乙個完全圖 每兩個點之間有且只有一條邊 每個點都有乙個獨一無二的 1,n 內的編號,jmy的任務是要找到最小生成樹,以此作為魔法樹...

最小生成樹總結

給定一張圖,圖中有許多的節點還有許多長度不同的邊將這些點點相互連線,找出連線所有點的最短方式就是最小生成樹,可以證明,這樣一種最小的情況是不會出現環的,由於所有的無環圖都可以看做樹,所以成為最小生成樹。頂層思想是分治,選擇策略是貪心,實現方法如下 以邊為中心,先將所有的邊從小到大進行排序,之後依照大...

最小生成樹總結

啊,先紀念一下吧,難得一天這麼 666 ac 完了所有題 次小生成樹 看懂 今天學到了最小生成樹演算法中的 prim 演算法和kruskal 演算法。從巨集觀上來講 prim 更適合稠密圖,krustal 更適合稀疏圖,但對於我們來說暫時沒有什麼區別啦。prim 演算法中主要注意的點是 在visit...