描述

n台电脑,如果两台电脑间的距离的d范围内,则两台电脑能够连通。

如果AB连通,BC连通,则认为AC连通。

已知电脑台数N,最大距离d,以及每个电脑的坐标。有如下两种操作:

O i 表示修复编号为i的电脑

S i j 表示判断电脑ij能否连通。

对每一个S操作,如果电脑ij能连通,输出SUCCESS,否则输出FAIL

思路

典型的并查集。

初始:每个点的父节点都是自身
 
每修复一个点,让所有能与这个点连通的点的根节点都指向这个点的根节点
每查询两个点,取得它们的根节点,判断是否相同,如果相同,输出SUCCESS,否则,输出FALSE

代码

  1 #include<cstdio>
2 #include<iostream>
3
4 using namespace std;
5
6 #define MAXN 1002
7
8 int par[MAXN];
9 int height[MAXN];
10 bool mode[MAXN];
11 bool dis[MAXN][MAXN];
12
13
14 void Init(int n)
15 {
16 for (int i = 0; i < n; i++)
17 {
18 par[i] = i;
19 height[i] = 0;
20 }
21 }
22
23 int find(int x)
24 {
25 if (par[x] == x)
26 return x;
27 else
28 return par[x] = find(par[x]);
29 }
30
31 void unite(int x,int y)
32 {
33 x = find(x);
34 y = find(y);
35
36 if (x!=y)
37 {
38 if (height[x] < height[y])
39 par[x] = y;
40 else
41 {
42 par[y] = x;
43 if (height[x] == height[y])height[x]++;
44 }
45 }
46
47 }
48
49 bool isSame(int x, int y)
50 {
51 return find(x) == find(y);
52 }
53
54
55 int main()
56 {
57 //freopen("C:\\Users\\zgwng\\Desktop\\2236.txt", "r",stdin);
58
59 int n, d;
60 cin >> n >> d;
61 int *x = new int[n];
62 int *y = new int[n];
63
64 for (int i = 0; i < n; i++)
65 {
66 cin >> x[i] >> y[i];
67 mode[i] = false;
68 }
69
70
71 int d2 = d*d;
72 for(int i=0;i<n;i++)
73 for (int j = 0; j < n; j++)
74 {
75 if ((x[i] - x[j])*(x[i] - x[j]) + (y[i] - y[j])*(y[i] - y[j]) <= d2)
76 dis[i][j] = dis[j][i] = true;
77 else
78 dis[i][j] = dis[j][i] = false;
79
80 }
81 delete[]x;
82 delete[]y;
83
84 Init(n);
85 //开始处理输入操作
86 char oper;
87 while (cin>>oper)
88 {
89 int i, j;
90 if (oper == 'O')
91 {
92 //修复
93 cin >> i;
94 i--;
95 mode[i] = true;
96 for (int k = 0; k < n; k++)
97 {
98 if (dis[i][k] && mode[k])
99 unite(i, k);
100 }
101
102 }//end if oper==o
103 else
104 {
105 cin >> i >> j;
106 i--;
107 j--;
108 if (isSame(i, j))
109 cout << "SUCCESS" << endl;
110 else
111 cout << "FAIL" << endl;
112 }
113 }
114
115 return 0;
116 }

POJ 2236:Wireless Network的更多相关文章

  1. POJ 2236:Wireless Network(并查集)

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 36363   Accepted: 150 ...

  2. 【POJ - 2236】Wireless Network (并查集)

    Wireless Network 这接翻译了 Descriptions 地震发生在东南亚.ACM(亚洲合作医疗团队)已经与膝上电脑建立了无线网络,但是一次意外的余震袭击,网络中的所有计算机都被打破了. ...

  3. POJ2236:Wireless Network(并查集)

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 39772   Accepted: 164 ...

  4. POJ 1459:Power Network(最大流)

    http://poj.org/problem?id=1459 题意:有np个发电站,nc个消费者,m条边,边有容量限制,发电站有产能上限,消费者有需求上限问最大流量. 思路:S和发电站相连,边权是产能 ...

  5. POJ 1459:Power Network 能源网络

    Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 25414   Accepted: 13247 D ...

  6. POJ 2236 Wireless Network ||POJ 1703 Find them, Catch them 并查集

    POJ 2236 Wireless Network http://poj.org/problem?id=2236 题目大意: 给你N台损坏的电脑坐标,这些电脑只能与不超过距离d的电脑通信,但如果x和y ...

  7. [并查集] POJ 2236 Wireless Network

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 25022   Accepted: 103 ...

  8. poj 2236:Wireless Network(并查集,提高题)

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 16065   Accepted: 677 ...

  9. POJ 2236 Wireless Network (并查集)

    Wireless Network 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/A Description An earthqu ...

随机推荐

  1. 有效提升Python代码性能的三个层面

    使用python进入一个熟练的状态之后就会思考提升代码的性能,尤其是python的执行效率还有很大提升空间(委婉的说法).面对提升效率这个话题,python自身提供了很多高性能模块,很多大牛开发出了高 ...

  2. Eureka单机&集群配置

    目录 Eureka是什么 自我保护机制 版本选择 服务搭建 创建项目 导入GAV坐标 application启动类添加注解 配置yml 启动项目 集群配置 修改上面的yml 打jar包到另外一台电脑O ...

  3. tp5 ajax单文件上传

    HTML代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  4. 怎么样在手机调试js,jq,html,如何在手机上调试js,javascript

    方法 直接在html中引入vconsole.js文件, 然后在js脚本中使用console.log('调试内容'); 即可看到如下效果,还可以在network里面看到ajax请求 我把js文件传到博客 ...

  5. Java有了synchronized,为什么还要提供Lock

    摘要:在Java中提供了synchronized关键字来保证只有一个线程能够访问同步代码块.既然已经提供了synchronized关键字,那为何在Java的SDK包中,还会提供Lock接口呢? 本文分 ...

  6. vue js计算精度问题处理,兼容XP系统

    js计算精度问题(浮点数误差,大数计算出错) JavaScript 运算时经常遇到会 0.000000001 和 0.999999999 这样奇怪的结果. 网上教程一大篇,原理请百度,抄作业往下看!! ...

  7. 运营商的三大数据域——B域,O域,M域

    O域(运营域).B域(业务域).M域(管理域)特指电信行业大数据领域的三大数据域. B域(业务域)= business support system的数据域, O域(运营域)= operation s ...

  8. Kettle错误记录之couldn't open file XXX

    业务背景: 简单的TXT文件入库逻辑 组件: 文件文本输入,表输出 具体BUG: 这里报错是无法打开文件,在我尝试了多个思路后,最终发现了问题所在. 因为使用的txt文件的格式是Unix的,而我的文本 ...

  9. python 多ip端口扫描器

    from socket import * import threading #导入线程相关模块 import re # qianxiao996精心制作 #博客地址:https://blog.csdn. ...

  10. J20航模遥控器开源项目系列教程(四)PCB打印 | 嘉立创PCB下单教程,5元顺丰包邮解君愁!

    我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/J ...