P2485

P2485

poj恢复的好快..
prim..然后求出最长的边..

#include  < iostream >
using   namespace  std;

const   int  MAXN = 501 ;
int  t;
int  n;
int  edge[MAXN][MAXN];
int  dist[MAXN];
bool  hash[MAXN];
const   int  INF = 65537 ;
void  prim()
{
     memset(hash,
0,sizeof(hash));
     
for (int i=0;i<n;i++)
         dist[i]
=INF;
     dist[
0]=0;
     
int max=-1;
     
for (int i=0;i<n;i++)
     
{
         
         
int u=-1;
         
int min=INF;
         
for (int j=0;j<n;j++)
         
{
             
if (hash[j]) continue;
             
if (min>dist[j]) {min=dist[j];u=j;}
         }

         
if (max<dist[u]) max=dist[u];
       
//  cout<<dist[u]<<endl;
         hash[u]=true;
         
for (int j=0;j<n;j++)
         
{
             
if (dist[j]>edge[u][j]) dist[j]=edge[u][j];
         }

     }

     cout
<<max<<endl;
    
// system("pause");
}

int  main()
{
 cin
>>t;
 
while(t--)
 
{
  cin
>>n;
  
for (int i=0;i<n;i++)
   
for (int j=0;j<n;j++)
   
{
    cin
>>edge[i][j];
   }

  prim();
 }

 
return 0;
}

你可能感兴趣的:(P2485)