最小生成樹 修路sdutoj2144

2021-06-23 09:22:07 字數 1267 閱讀 9429

有n個城市,其中有些城市之間可以修建公路,修建不同的公路費用是不同的。現在我們想知道,最少花多少錢修公路可以將所有的城市連在一起,使在任意一城市出發,可以到達其他任意的城市。

輸入包含多組資料,格式如下。

第一行包括兩個整數n m,代表城市個數和可以修建的公路個數。(n<=100)

剩下m行每行3個正整數a b c,代表城市a 和城市b之間可以修建一條公路,代價為c。

每組輸出佔一行,僅輸出最小花費。

3 2

1 2 1

1 3 1

1 0

2

0

**如下:

//prim演算法

#include

#include"cstdio"

#include"cstring"

#include"cstdlib"

using namespace std;

int map[120][120];

int dis[120];

int vis[120];

int n,m;

int sum;

const int inf=999999;

void  prim(int n)

vis[1]=1;

sum=0;

for(int i=1;i=inf)break;

sum+=min;

vis[pos]=1;

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

prim(n);

printf("%d\n",sum);

}return 0;

//kruskal演算法

#include

#include

#include

#include

#include

using namespace std;

int bin[110];

int sum;

int num;

int n,m;

struct node

q[100000];

int finds(int a)

void sort(node *s)

node t=s[i];s[i]=s[k];s[k]=t;}}

int main()

sort(q);

for(i=0;iif(num==n-1)

}printf("%d\n",sum);

}return 0;

}

最小生成樹(修路)

題意 flatopia島要修路,這個島上有n個城市,要求修完路後,各城市之間可以相互到達,且修的總 路程最短.求所修路中的最長的路段 sample input 1 30 990 692 990 0 179 692 179 0 sample output 692 include define max ...

修路方案 最小生成樹變形 次小生成樹

時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述 南將軍率領著許多部隊,它們分別駐紮在n個不同的城市裡,這些城市分別編號1 n,由於交通不太便利,南將軍準備修路。現在已經知道哪些城市之間可以修路,如果修路,花費是多少。現在,軍師小工已經找到了一種修路的方案,能夠使各個城市都聯通...

修路方案(次小生成樹)

時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述 南將軍率領著許多部隊,它們分別駐紮在n個不同的城市裡,這些城市分別編號1 n,由於交通不太便利,南將軍準備修路。現在已經知道哪些城市之間可以修路,如果修路,花費是多少。現在,軍師小工已經找到了一種修路的方案,能夠使各個城市都聯通...