poj 2485 Highways(prim求最小生成树)

来源:互联网 发布:算法的描述 编辑:程序博客网 时间:2024/05/01 02:24
//poj 2485 Highways(prim求最小生成树)/*prim适合密图*/#include<iostream>#include<cstdio>#include<string.h>using namespace std;const int Inf=1000000000;const int N=510;int map[N][N];int vis[N];int ans;int dis[N];void prim(int n)//prim求最小生成树{    memset(vis,0,sizeof(vis));    for(int i=1;i<=n;i++)    {        dis[i]=Inf;    }    dis[1]=0;    ans=0;    for(int i=1;i<=n;i++)    {        int temp=Inf,k=0;        for(int j=1;j<=n;j++)        {            if(!vis[j]&&dis[j]<temp)            {                temp=dis[j];                k=j;            }        }        vis[k]=true;        if(ans<temp) ans=temp;        for(int j=1;j<=n;j++)        {            if(!vis[j]&&dis[j]>map[k][j])            {                dis[j]=map[k][j];            }        }    }}int main(){    int t;    scanf("%d",&t);    while(t--)    {       int n;       scanf("%d",&n);       for(int i=1;i<=n;i++)       {          for(int j=1;j<=n;j++)          {              scanf("%d",&map[i][j]);          }       }       prim(n);       printf("%d\n",ans);    }    return 0;}

0 0