栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1751 Highways

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1751 Highways

#include <cstdio>#include <cmath>#include <algorithm>#include <limits.h>using namespace std;const int MAXN = 800;const int MAXE = 500000;const int INF = 0x7fffffff;int nv,ne,index,set[MAXN],pos[MAXE];struct Edge{    int u,v;    int val;}edge[MAXE];struct Node{    int x,y;}node[MAXN];int cmp(const Edge& a,const Edge& b){    return a.val < b.val;}int find_set(int x){    int root = x,tmp;    while(set[root] >= 0)        root = set[root];    while( x != root)    {        tmp = set[x];        set[x] = root;        x = tmp;    }    return root;}void union_set(const int& root1,const int& root2){    int a = set[root1];    int b = set[root1];    if( a>b)    {        set[root1] = root2;        set[root2] += a;    }else{        set[root2] = root1;        set[root1] += b;    }}int kruskal(){    index = 0;    int sum = 0,root1,root2,tmp,i;    for(i = 0;i < ne; ++i)    {        root1 = find_set(edge[i].u);        root2 = find_set(edge[i].v);        if( root1 != root2)        { pos[index] = i; ++index; union_set(root1,root2);        }    }    return sum;}int main(){    int i,j,k,a,b,tmp,val,n,m,root1,root2;    while(scanf("%d",&nv) != EOF)    {        memset(set,-1,sizeof(set));        for(i = 1;i <= nv; ++i) scanf("%d%d",&(node[i]).x,&(node[i].y));        index = 0;        for(i = 1;i <= nv; ++i) for(j = i + 1;j <= nv; ++j) {     edge[index].u = i;     edge[index].v = j;     edge[index].val = (node[i].x-node[j].x)*(node[i].x-node[j].x)+         (node[i].y - node[j].y)*(node[i].y-node[j].y);     ++index; }        ne = index;        sort(edge,edge+ne,cmp);        scanf("%d",&n);        for(i = 1;i <= n; ++i)        { scanf("%d%d",&a,&b); root1 = find_set(a); root2 = find_set(b); if( root1 != root2)     union_set(root1,root2);        }        kruskal();        for(i = 0;i < index; ++i) printf("%d %dn",edge[pos[i]].u,edge[pos[i]].v);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/375570.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号