poj2485 - Highways

来源:互联网 发布:linux常用命令ln 编辑:程序博客网 时间:2024/06/05 20:03

最小生成树,O(n^3)

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int m[505][505];int n;int maxlen;void Prim(){    int u[n];    memset(u,0,n*sizeof(int));    int gs=n-1;    u[0]=1;    for(int i=0;i<gs;++i){        int p,q;        int minlen=65537;        for(int j=0;j<n;++j){            if(u[j]==1){                for(int k=0;k<n;++k){                    if(k==j)                        continue;                    if(u[k]==0){                        if(m[j][k]<minlen){                            p=j;                            q=k;                            minlen=m[j][k];                        }                    }                }            }        }        u[q]=1;        if(maxlen<minlen)            maxlen=minlen;    }}int main(){    int t;    //freopen("1.txt","r",stdin);    scanf("%d",&t);    while(t--){        scanf("%d",&n);        for(int i=0;i<n;++i)            for(int j=0;j<n;++j)                scanf("%d",&m[i][j]);        maxlen=0;        Prim();        printf("%d\n",maxlen);    }    return 0;}


0 0
原创粉丝点击