POJ 2485 Highways

来源:互联网 发布:linux火狐57乱码 编辑:程序博客网 时间:2024/04/29 02:27

最小生成树问题。

求最小生成树的最大边,没有坑点。


#include<cstdio>#include<cstring>#include<string>#include<queue>#include<algorithm>#include<queue>#include<map>#include<stack>#include<iostream>#include<list>#include<set>#include<cmath>#define INF 0x7fffffff#define eps 1e-6using namespace std;int fa[501];int n;int father(int x){    if(x!=fa[x])        return fa[x]=father(fa[x]);}struct lx{    int u,v,len;} l[501*501];bool cmp(lx a,lx b){    return a.len<b.len;}int main(){    int t;    scanf("%d",&t);    while(t--)    {        scanf("%d",&n);        int cot=0;        for(int i=1; i<=n; i++)            fa[i]=i;        for(int i=1; i<=n; i++)            for(int j=1; j<=n; j++)            {                int len;                scanf("%d",&len);                if(i<=j)continue;                l[cot].u=i,l[cot].v=j;                l[cot++].len=len;            }        sort(l,l+cot,cmp);        int maxv=0;        for(int i=0; i<cot; i++)        {            int fu=father(l[i].u);            int fv=father(l[i].v);            if(fu==fv)continue;            fa[fv]=fu;            maxv=max(maxv,l[i].len);        }        printf("%d\n",maxv);    }}


0 0
原创粉丝点击