标签:
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 23426 | Accepted: 10829 |
Description
Input
Output
Sample Input
1 3 0 990 692 990 0 179 692 179 0
Sample Output
692
代码:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
#include <algorithm>
#define INF 999999999
#define MIN -1
#define N 500+10
using namespace std;
int map[N][N];
bool vis[N];
int dis[N];
int n, ans;
void prim()
{
ans=MIN; //最小生成树的权值和初始化0
int mm;
int i, j;
memset(vis, false, sizeof(vis));
for(i=0; i<n; i++)
{
dis[i]=map[0][i];
}
vis[0]=true;
int pos;
for(i=0; i<n-1; i++)
{
mm=INF;
for(j=0; j<n; j++)
{
if(vis[j]==false && dis[j]<mm)
{
mm=dis[j];
pos=j;
}
}
if(mm>ans) ans=mm;
vis[pos]=true;
for(j=0; j<n; j++)
{
if(vis[j]==false && dis[j]>map[j][pos] )
{
dis[j]=map[j][pos];
}
}
}
printf("%d\n", ans );
}
int main()
{
int i, j;
int t;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%d", &map[i][j] );
}
}
prim();
}
return 0;
}
POJ 2485 Highways(最小生成树+ 输出该最小生成树里的最长的边权)
标签:
原文地址:http://www.cnblogs.com/yspworld/p/4319188.html