mst
time limit: 1000 ms
memory limit: 65536 k
total submit: 316(117 users)
total accepted: 160(110 users)
rating:
special judge: no
description
既然大家都不願意做水題,元帥也很無奈,想了好久也不知道什麼是水題,因為在元帥的眼裡都是水題,他定義的非水題就是他做不出來的題。太囧了,隨便弄個水的mst。
input
測試輸入包含若干測試用例。每個測試用例的第1行給出頂點數目n ( < 100 );隨後的n(n-1)/2行對應村莊間的距離,每行給出一對正整數,分別是兩個頂點的編號,以及此兩村莊間的距離。為簡單起見,村莊從1到n編號。
當n為0時,輸入結束,該用例不被處理。
output
對於每個測試用例,輸出mst的最小路徑總長度。
sample input
3
1 2 1
1 3 2
2 3 4
4
1 2 1
1 3 4
1 4 1
2 3 3
2 4 2
3 4 5
0
sample output
3
5
author
最小生成樹
我們需要知道每次選邊的時候選擇最小的邊
並查集加貪心吧。。///hh練習用一下優先佇列
#include#include#include#includeusing namespace std;
struct coor
};int pre[10003];
priority_queueq;
int find(int x)
int ans=0;
void coin(coor x)
}void init(int n)
}int main()
while(!q.empty())
printf("%d\n",ans);}}
最小生成樹(MST)
在帶權圖中,所有的生成樹中邊權的和最小的那棵 或幾棵 被稱為最小生成樹。幾點注意 求最小生成樹使用kruskal演算法。使用並查集處理節點的集合屬性,初始時所有結點屬於只包含其自身的孤立集合。實現 include include using namespace std define n 101 in...
最小生成樹 MST
1 prim演算法 對點進行貪心操作。適合稠密圖 const int m 1005 int vis m 表示該i點是否被選擇 vis i 0 還未被選擇 int map m m map i j 表示i到j的距離 int dis m 1到i的距離和 void prim cout sum 2 krusk...
最小生成樹MST
最小生成樹是在一張無向連通圖中,找到一棵樹,使得其邊的代價之和最小。注 可能存在多個最小生成樹。以邊為展開,將圖中的最小代價邊嘗試加入集合tree中,並且該邊不能與集合tree中的邊形成環,如此迭代,最終得到的集合tree為mst。因此可以採用並集查的方式實現kruskal演算法 以點為展開,將圖中...