描述

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. oracle 12c RAC 重启

    转至:https://blog.csdn.net/weixin_40283570/article/details/81511072 关闭顺序 :关闭PDB----->关闭数据库------> ...

  2. spring 与java EE

    javaEE 和 j2EE一样吗?  javaEE (java platform Enterprise Edition) 1999年,Sun公司将java分为3个版本,即 标准版(J2SE) , 企业 ...

  3. Hive udf 或者 spark maven打包问题

    正常打包maven pom配置如下 <properties> <project.build.sourceEncoding>UTF8</project.build.sour ...

  4. 5.string字符串

    string(字符串)是 Redis 中最简单的数据类型.我们知道,Redis 所有数据类型都是以 key 作为键,通过检索这个 key 就可以获取相应的 value 值.Redis 存在多种数据类型 ...

  5. Qt:QListWidget

    0.说明 QListWidget指明一个基于Item的List Widget. 构造 QListWidget与QListView类似,都可以显示一列Item,区别在于前者可以往其中增删Item. QL ...

  6. c# Winform中如何把图片添加到resources中

    我们在Winform项目中中需要插入图片资源,但是新建的项目中找不到Resources文件夹,怎么才能出现呢? 1:双击项目下的Resources.resx,出现视图 2:单击"添加资源&q ...

  7. Tableau学习Step5一表计算、详细级别表达式、动作、外接python

    Tableau学习Step5一表计算.详细级别表达式.动作.外接python 本文首发于博客冰山一树Sankey,去博客浏览效果更好. ) Tableau学习Step4一数据解释.异常值监测.参数使用 ...

  8. springboot-jta-atomikos多数据源事务管理

    背景 我们平时在用springboot开发时,要使用事务,只需要在方法上添加@Transaction注解即可,但这种方式只适用单数据源,在多数据源下就不再适用: 比如在多数据源下,我们在一个方法里执行 ...

  9. STP详解-STP、RSTP、MSTP

    STP详解 01 冗余链路中存在的问题 如图所示LSW1和LSW2之间有两条线路相连,它们之间任何一条链路出现故障另外一条线路可以马上顶替出现故障的那条链路,这样可以很好的解决单链路故障引起的网络中断 ...

  10. SQL注入 - SQLi-Labs靶场过关记录

    Less-1 1.看报错类型,确定注入点 ?id=1' order by 4--++ 2.确定数据库 ?id=-1' union select 1,2,3--++ 3.查看数据库 ?id=-1' un ...