已知村子之间的距离矩阵,求最小生成树。
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int NUM;
cin>>NUM;
for(int i=0;i<NUM;i++)
{
int N;
cin>>N;
int a[N][N];
int used[N];
for(int j=0;j<N;j++)
{
used[j]=0;
for(int k=0;k<N;k++)
{
scanf("%d",&a[j][k]);
//cin>>a[j][k];
}
}
used[0]=1;
int jg=-1;
for(int j=0;j<N-1;j++)
{
int zx=65537;
int wz;
for(int m=0;m<N;m++)
{
for(int n=0;n<N;n++)
{
if(((used[m]==0)&&(used[n]==1))&&(a[m][n]!=0))
{
if(a[m][n]<zx)
{
zx=a[m][n];
wz=m;
}
}
}
}
used[wz]=1;
if(jg<zx)
{
jg=zx;
}
}
cout<<jg<<endl;
}
}
Problem | Result | Memory | Time | Language | Code Length |
2485 | Accepted | 840K | 422MS | G++ | 659B |