您的位置:首页 > 其它

poj 2485 Highways 最小生成树

2012-07-07 10:53 423 查看
poj 2485 Highways

//poj 2485 Highways
//MST(minimum spanning tree)
//here is want to get the longest road

#include <stdio.h>
#include <string.h>

#define N 505
#define INF 1<<30

int n;
int map

, dis
, ans;
bool vis
;

void prim()
{
for(int i = 0; i < n; ++i)
{
dis[i] = INF;
vis[i] = false;
}
dis[0] = 0;
while(1)
{
int min = INF, index = -1;
for(int i = 0; i < n; ++i)
{
if(vis[i] == false && min > dis[i])
{
min = dis[i];
index = i;
}
}
if(index == -1)
return;
vis[index] = true;

if(ans < min)   //保存MST中的最长路
ans = min;

for(int i = 0; i < n; ++i)
if(vis[i] == false && dis[i] > map[index][i])
dis[i] = map[index][i];
}
}

int main()
{
int n_case;
scanf("%d", &n_case);
while(n_case--)
{
ans = 0;
memset(map, 0, sizeof(map));
scanf("%d", &n);
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < n; ++j)
{
scanf("%d", &map[i][j]);
map[j][i] = map[i][j];
}
}
prim();
printf("%d\n", ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: