标签:
1 #include<stdio.h> 2 #include<string.h> 3 const int INF=0x3f3f3f3f; 4 const int MAXN=510; 5 #define MAX(x,y) (x>y?x:y) 6 int vis[MAXN],map[MAXN][MAXN],low[MAXN]; 7 int N,answer; 8 void prime(){ 9 memset(vis,0,sizeof(vis)); 10 int flot=1,temp,k; 11 answer=-INF; 12 vis[1]=1; 13 for(int i=1;i<=N;i++)low[i]=map[1][i]; 14 for(int i=1;i<=N;i++){ 15 temp=INF; 16 for(int j=1;j<=N;j++) 17 if(!vis[j]&&temp>low[j])temp=low[k=j]; 18 if(temp==INF){ 19 // if(flot!=N)ans=0; 20 // printf("flot=%d,N=%d\n",flot,N); 21 break; 22 } 23 answer=MAX(answer,temp); 24 vis[k]=1; 25 flot++; 26 for(int j=1;j<=N;j++){ 27 if(!vis[j]&&low[j]>map[k][j])low[j]=map[k][j]; 28 } 29 } 30 } 31 int main(){ 32 int T,a; 33 scanf("%d",&T); 34 while(T--){ 35 memset(map,INF,sizeof(map)); 36 scanf("%d",&N); 37 for(int i=1;i<=N;i++){ 38 for(int j=1;j<=N;j++){ 39 scanf("%d",&a); 40 if(j>i){ 41 if(a<map[i][j])map[i][j]=map[j][i]=a; 42 } 43 } 44 } 45 prime(); 46 printf("%d\n",answer); 47 } 48 return 0; 49 }
标签:
原文地址:http://www.cnblogs.com/handsomecui/p/4726711.html