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

zoj 2048 Highways

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

zoj 2048 Highways

#include <stdio.h>#include <stdlib.h>#include <iostream>#include <math.h>#include <memory.h>#define N 755using namespace std;int n,p = 0;int pre[N];struct edge{int x,y;double len;}city[N*N];typedef struct edge NODE;double compute(double x1,double y1,double x2,double y2){return (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);}int find(int x){while(x!=pre[x])x = pre[x];return x;}void input(){int m,x,y;p = 0;double coor[N][2],len;cin >> n;for(int i=1; i<=n; i++)cin >> coor[i][0] >> coor[i][1];cin >> m;for(int i=1; i<=n; i++)pre[i] = i;for(int i=1; i<=m; i++){cin >> x >> y;x = find(x);y = find(y);if( x!= y )    pre[x] = y;}for(int i=1; i<=n; i++)    for(int j=i+1; j<=n; j++)    {len = compute(coor[i][0],coor[i][1],coor[j][0],coor[j][1]);city[p].x = i; city[p].y = j;city[p].len = len;p++;}}int cmp ( const void *a, const void *b){return ((NODE*)a)->len > ((NODE*)b)->len ? 1 : -1;}void kruskal(){int a,b,i;qsort( city , p, sizeof(NODE),cmp);for(i=0; i<p; i++){a = find( city[i].x );b = find( city[i].y );if( a!= b ){pre[b] = a;cout << city[i].x << " " << city[i].y << endl;}}}int main(void){int ncases;cin >> ncases;while( ncases-- ){input();kruskal();if( ncases != 0 )    cout << endl;}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378081.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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