poj 2485:Highways

来源:互联网 发布:linux 查看home目录 编辑:程序博客网 时间:2024/06/05 20:07

解题思路:

prim求解最小生成树

#include<iostream>#include<stdio.h>#include<cstring>#include<stdlib.h>#include<cmath>using namespace std;const int inf = 1<<30;int main(){int n,m;int townDis[505][505];int townLink[505];int townNum; scanf("%d",&n);while(n--){scanf("%d",&m);for(int i=1;i<=m;i++)for(int j=1;j<=m;j++)scanf("%d",&townDis[i][j]);memset(townLink,0,sizeof(townLink));townNum = 1;townLink[1] = 1;int p=0,q=0;int minDis;int ans=0;while(townNum<m){minDis = inf;for(int i=1;i<=m;i++)for(int j=1;j<=m;j++){if((townLink[i]==0) && (townLink[j]>0)){if(townDis[i][j]<minDis){minDis = townDis[i][j];p = i;q = j;}}}townLink[p] = 1;townNum++;ans = max(ans,minDis);}printf("%d\n",ans);}return 0;} 


0 0