OJ交不了,,,

#pragma warning(disable:4996)
#include<iostream>
#include<string>
#include<cmath>
#include<ctype.h>
#include<memory.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<iomanip>
#include<set>
#include<list>
#include<vector>
#include<stack>
#include<queue>
#define ll long long int
using namespace std;
const int INF = 0x3f3f3f3f;
const int maxn = 1100;
struct point
{int x, y;
};struct EDGE
{int u, v;double w;
};
bool cmp(EDGE a, EDGE b)
{return a.w < b.w;
}point a[maxn];
EDGE edge[maxn];
int n, m;
int par[maxn];
int cnt = 0;
point ans[maxn];int find(int x)
{if (par[x] == x)return par[x];return par[x] = find(par[x]);
}void initilize()
{cnt = 1;for (int i = 0; i <= n; i++)par[i] = i;
}double cal_dis(int x1, int y1, int x2, int y2)
{return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}int main()
{cin >> n;initilize();for (int i = 1; i <= n; i++)cin >> a[i].x >> a[i].y;//for (int i = 1; i <= n; i++)//  cout << "x,y: " << a[i].x << " " << a[i].y << endl;for (int i = 1; i < n; i++)for (int j = i + 1; j <= n; j++){edge[cnt].u = i;edge[cnt].v = j;edge[cnt].w = cal_dis(a[i].x, a[i].y, a[j].x, a[j].y);cnt++;}//cout << "edge[i]:";//for (int i = 1; i <= cnt; i++)// cout << edge[i].u << " " << edge[i].v << " " << edge[i].w << endl;cin >> m;for (int i = 0; i < m; i++){int u, v;cin >> u >> v;int fa = find(u);int fb = find(v);par[fb] = fa;}/*for (int i = 0; i < n; i++){for (int j = i; j < n; j++){if (find(i) != find(j)){edge[cnt].u = i;edge[cnt].v = j;edge[cnt].w = cal_dis(a[i].x, a[i].y, a[j].x, a[j].y);cnt++;}}}*/sort(edge, edge + cnt, cmp);/*cout << "edge[i]:";for (int i = 1; i <= cnt; i++)cout << edge[i].u << " " << edge[i].v << " " << edge[i].w << endl;*//*cout << "par[i] = ";for (int i = 0; i <= n; i++)cout << par[i] << " ";cout << endl;*/int cnt2 = 0;for (int i = 1; i <= cnt; i++){int fa = find(edge[i].u);int fb = find(edge[i].v);//cout << ":";if (fa != fb){//cout << fa << " " << fb << endl;par[fb] = fa;ans[cnt2].x = edge[i].u;ans[cnt2].y = edge[i].v;cnt2++;if (cnt2 == n - 1)break;//cout << edge[i].u << " " << edge[i].v << endl;}}for (int i = 0; i < cnt2; i++)cout << ans[i].x << " " << ans[i].y << endl;/*for(int i=0;i<n;i++)for (int j = 0; j < n; j++){edge[cnt].u = i;edge[cnt].v = j;edge[cnt].w = cal_dis(a[i].x, a[i].y, a[j].x, a[j].y);cnt++;}*/return 0;
}

poj 1751 Highways 最小生成树Kruskal(、Prim还没写相关推荐

  1. poj 1287 Networking 最小生成树 Kruskal Prim

    关于Kruskal和Prim在前面已经有详细的解释以及模板了 有关于需要注意的地方,以及在代码中注释出来. //Kruskal //用结构体保存起始点以及耗费,然后排序后,根据Kruskal #inc ...

  2. 徐磊(Devops):一名写了十几年代码但还没写够的程序员

    徐磊(Devops 社区领袖) [个人介绍] 徐磊,微软MVP(微软最有价值专家,大中华区域社区技术总监,Devops 社区领袖),从事过网管.技术支持.网络.软件开发等工作,一名写了十几年代码但还没 ...

  3. poj 3026 BorgMaze 最小生成树Kruskal、Prim(Prim VS报错待解决

    题意 以及 思路: 从S点有一伙人出发去消灭A点的敌人,在S点或者A点可以分裂成几个小队然后分别走,这样路径=总队路径+各个小队路径 问你怎样路径最短. 在一个y行 x列的迷宫中,有可行走的通路空格' ...

  4. * poj 1251 JungleRoad 最小生成树 Kruskal算法、Prim算法

    文章目录 Kruskal算法 模板:https://blog.csdn.net/Rain722/article/details/65642992 Prim算法 模板: poj 1251 JungleR ...

  5. poj 2439 ArcticNetwork 最小生成树Kruskal、(Prim方法还没做

    题意思路: https://www.cnblogs.com/yueshuqiao/archive/2011/08/24/2152471.html Kruskal: 参考大佬的代码: 法一 法二 #pr ...

  6. POJ 1751 Highways (kruskal)

    题目链接:http://poj.org/problem?id=1751 题意是给你n个点的坐标,然后给你m对点是已经相连的,问你还需要连接哪几对点,使这个图为最小生成树. 这里用kruskal不会超时 ...

  7. poj 1679 TheUniqueMST 最小生成树Kruskal(、Prim待做

    题意: 给定连接的无向图,告诉它的最小生成树是否唯一. 定义1(生成树):考虑连通的无向图G =(V,E).G的生成树是G的子图,比如T =(V',E'),具有以下属性: 1.V'= V. 2.T是连 ...

  8. poj 1789 TruckHistory 最小生成树 Kruskal、Prim

    题意: n个车牌号,刚开始只有一个车牌,其他车牌都是由一个车牌直接或间接产生,一个车牌到另一个车牌的产生权值是它们之间的数字不同的个数,问产生的最小的边权和,即求最小生成树. Input: 多组数据. ...

  9. SOJ2198 Highways 最小生成树 kruskal算法

    第一次写博客 最小生成树入门题 附上链接 http://cstest.scu.edu.cn/soj/problem.action?id=2198 这是一道kruskal的模板题(刘汝佳的小白书--&l ...

最新文章

  1. 服务器监控软件ZABBIX
  2. Android_安卓为按钮控件绑定事件的五种方式
  3. csredis-in-asp.net core理论实战-主从配置、哨兵模式
  4. 矢量合成和分解的法则_力的合成与分解专题解析,寒假复习!
  5. 笔记本电脑电源已接通未充电_dell xps15 电源已接通 未充电 维修方法
  6. 【2019牛客暑期多校训练营(第二场) - H】Second Large Rectangle(单调栈,全1子矩阵变形)
  7. python 图片拼接成固定行列
  8. Win10错误代码0x80070541是怎么回事
  9. BZOJ 3289 Mato的文件管理(莫队+树状数组)
  10. 67. 查询分页数据(2)
  11. [原创]如何有效的考核测试人员
  12. MySQL5.7 InnoDB官方文档中文版[猿教程]
  13. EPLAN电气设计实例入门教程pdf
  14. BugKu CTF(杂项篇MISC)—啊哒
  15. Arduino 用4位共阴数码管造一个计数器
  16. 云计算技术的概念、原理
  17. 获取当前时间一年后的日期
  18. 通达信l2数据接口与MACD指标结合
  19. 2022年全国大学生数学建模竞赛E题目-小批量物料生产安排详解+思路+Python代码时序预测模型(三)
  20. 南加州大学计算机科学案例,南加州大学计算机科学硕士录取

热门文章

  1. 【HNOI2017】礼物
  2. spring boot 相关注解
  3. centos7.3部署django用uwsgi和nginx[亲测可用]
  4. beeline连接hive
  5. Oracle PLSQL 客户端 连接Oracle12.2 出现权限问题的解决办法以及绿色版Oracle客户端的使用....
  6. 关于数据库记录排序问题
  7. 设计模式12-命令模式
  8. CCF202112-2 序列查询新解
  9. Tensorflow_gpu安装的坑
  10. python 把多个list合并为一个并去重内容_110道Python面试题(上)