求最小生成树的最大边,prime模板
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
using namespace std;
int map[1005][1005],dis[10000],mark[10000];
void prime(int n)
{
for(int i=0;i<n;i++)
{
mark[i]=0;
dis[i]=map[0][i];
}
mark[0]=1;
int pos,min=65535,max=-65535;
for(int i=1;i<n;i++)
{
min=65535;
pos=0;
for(int j=0;j<n;j++)
{
if(mark[j]==0&&dis[j]<min)
{
pos=j;
min=dis[j];
}
}
mark[pos]=1;
if(max<min)
max=min;
for(int j=0;j<n;j++)
{
if(mark[j]==0&&dis[j]>map[pos][j])
dis[j]=map[pos][j];
}
}
cout<<max<<endl;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
memset (map,0,sizeof (map));
cin>>n;
for (int i = 0; i < n; i++)
{
for( int j = 0; j < n; j++)
{
cin>>map[i][j];
}
}
prime (n);
}
return 0;
}