丁丁妹考上了公務員,經過多年的打拼當上了省長,丁丁妹決定要造福百姓決定給村與村之間修路。他知道村莊間的距離。修路的目標是每兩個村莊之間都能通過公路連線(但不一定有直接的公路相連,只要能間接通過公路可達即可),丁丁妹想知道他最少需要修多長的路。
input
多組樣例,每個測試用例的第1行給出村莊數目n ( < 100 );隨後的n(n-1)/2行對應村莊間的距離,每行給出一對正整數,分別是兩個村莊的編號,以及此兩村莊間的距離。為簡單起見,村莊從1到n編號。
當n為0時,輸入結束,該用例不被處理。
output
對每個測試用例,一行輸出丁丁妹要修的路的總長度。
sample input
31 2 1
1 3 2
2 3 4
21 2 1
0sample output31
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using
namespace std;
typedef
long
long ll;
const
int maxn =
500;
int n,m;
bool vis[maxn]
;//用來標記0和1表示這個點是否被選擇過
int mp[maxn]
[maxn]
;//鄰接矩陣用來儲存圖的資訊
int dis[maxn]
;//記錄任意一點到這個點的最近距離
void
prim()
if(now==inf)
break
;//防止不成圖
vis[now]
=true
; sum+
=mz;
for(
int j=
1;j<=n;j++
)//添入新點後更新最小距離if(
最小生成樹模板
prim演算法理解可以參考部落格 prim演算法模板 int prime int v int i,j,sum 0,min,k sum是權重和 for i 1 i n i lowcost i 表明當前狀態下在u內距離v點 s中各點 距離的最小值,每個u中點s 中點 都計算 lowcost i map ...
最小生成樹 模板
const int maxn 1010 const int maxm 200020 struct edge edges maxm int father maxn int find int x int cmp edge a,edge b 將邊按權值排序 int kruskal int n,int m ...
模板 最小生成樹
題目描述 如題,給出乙個無向圖,求出最小生成樹,如果該圖不連通,則輸出orz 輸入輸出格式 輸入格式 第一行包含兩個整數n m,表示該圖共有n個結點和m條無向邊。n 5000,m 200000 接下來m行每行包含三個整數xi yi zi,表示有一條長度為zi的無向邊連線結點xi yi 輸出格式 輸出...