Highways

POJ-1751

注意这里的样例答案也是对的,只是输出顺序改变,但是这也没关系,因为题目加了特殊判断。

#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=755;
const int maxm=500004;
int n,m;
int e;
int x[maxn];
int y[maxn];
int set[maxn];
struct node{
int from;
int to;
double cost;
bool operator<(const node& t)const{
return cost<t.cost;
}
};
node edges[maxm];
int find(int x){
return x==set[x]?set[x]:set[x]=find(set[x]);
}
void kruskal(){
sort(edges,edges+e);
for(int i=0;i<e;i++){
int x=edges[i].from;
int y=edges[i].to;
double cost=edges[i].cost;
int from=find(x);
int to=find(y);
if(from!=to){
set[from]=to;
cout<<x<<" "<<y<<endl;
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
while(cin>>n){
e=0;
for(int i=1;i<=n;i++){
cin>>x[i]>>y[i];
set[i]=i;
for(int j=1;j<i;j++){
double cost=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
edges[e++]=node({i,j,cost});
}
}
cin>>m;
for(int i=0;i<m;i++){
int a,b;
cin>>a>>b;
int a1=find(a);
int b1=find(b);
if(a1!=b1)
set[a1]=b1;
}
kruskal();
}
return 0;
}

最新文章

  1. Redux教程2:链接React
  2. Powershell 学习笔记【持续更新】
  3. centos 7.0 编译 安装mysql 5.6.22 过程 已完成~ 成功~ 撒花~
  4. Linux:Ubuntu 14.04 Server 离线安装Jjava8(及在线安装)
  5. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.4.Tabs控件
  6. 实现Fragment的切换和ViewPager自动循环设置切换时间
  7. C# 发送邮件代码
  8. 基于TBDS的flume异常问题排查过程
  9. gulp自动刷新插件
  10. Aizu 2305 Beautiful Currency DP
  11. javascript 学习随笔3
  12. 13个不可不知的ASP.NET MVC扩展点
  13. 【将txt文本转图片】
  14. 学习python笔记 协程
  15. 完美集群监控组合ganglia和nagios
  16. 【dfs】LETTERS
  17. POJ 1061 青蛙的约会 (扩展欧几里得算法)
  18. ModuleNotFoundError No module named urllib2
  19. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem C. Cargo Transportation 暴力
  20. e774. 创建JList组件

热门文章

  1. 西南民族大学第十二届程序设计竞赛(同步赛) A.逃出机房 (bfs)
  2. 2019牛客暑期多校训练营(第六场)J Upgrading Technology
  3. 牛客小白月赛17 A 小sun的假期
  4. 牛客编程巅峰赛S1第5场 - 青铜&amp;白银 C.排队 (优先队列,归并排序)
  5. Java之浅拷贝和深拷贝
  6. windows信息收集
  7. apt 和 apt-get 之间有什么区别?
  8. 解决debian (Friendly ARM 嵌入式板)的sudo等一部分命令无法TAB补全
  9. ES6 &amp; import * &amp; import default &amp; import JSON
  10. taro &amp; Error: spawn taro ENOENT