#include<stdio.h>
#include<string.h>
#define N 505
int map[N][N];
int dis[N],book[N];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(book,0,sizeof(book));
int n,i,j,k;
int count=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&map[i][j]);
for(i=1;i<=n;i++)
dis[i]=map[1][i];
book[1]=1;
count++;
int max=0;
while(count<n)
{
int min=0x3f3f3f;
for(i=1;i<=n;i++)
{
if(!book[i]&&dis[i]<min)
{
j=i;
min=dis[i];
}
}
book[j]=1;
count++;
if(max<dis[j])
max=dis[j];
for(k=1;k<=n;k++)
{
if(!book[k]&&dis[k]>map[j][k])
dis[k]=map[j][k];
}
}
printf("%d\n",max);
}
return 0;
}
poj2485_最小生成树
最新推荐文章于 2021-03-10 21:08:22 发布