POJ 2236:Wireless Network
描述
n台电脑,如果两台电脑间的距离的d范围内,则两台电脑能够连通。
如果AB连通,BC连通,则认为AC连通。
已知电脑台数N,最大距离d,以及每个电脑的坐标。有如下两种操作:
O i 表示修复编号为i的电脑
S i j 表示判断电脑ij能否连通。
对每一个S操作,如果电脑ij能连通,输出SUCCESS,否则输出FAIL
思路
典型的并查集。
代码
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的更多相关文章
- POJ 2236:Wireless Network(并查集)
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 36363 Accepted: 150 ...
- 【POJ - 2236】Wireless Network (并查集)
Wireless Network 这接翻译了 Descriptions 地震发生在东南亚.ACM(亚洲合作医疗团队)已经与膝上电脑建立了无线网络,但是一次意外的余震袭击,网络中的所有计算机都被打破了. ...
- POJ2236:Wireless Network(并查集)
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 39772 Accepted: 164 ...
- POJ 1459:Power Network(最大流)
http://poj.org/problem?id=1459 题意:有np个发电站,nc个消费者,m条边,边有容量限制,发电站有产能上限,消费者有需求上限问最大流量. 思路:S和发电站相连,边权是产能 ...
- POJ 1459:Power Network 能源网络
Power Network Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 25414 Accepted: 13247 D ...
- POJ 2236 Wireless Network ||POJ 1703 Find them, Catch them 并查集
POJ 2236 Wireless Network http://poj.org/problem?id=2236 题目大意: 给你N台损坏的电脑坐标,这些电脑只能与不超过距离d的电脑通信,但如果x和y ...
- [并查集] POJ 2236 Wireless Network
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 25022 Accepted: 103 ...
- poj 2236:Wireless Network(并查集,提高题)
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 16065 Accepted: 677 ...
- POJ 2236 Wireless Network (并查集)
Wireless Network 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/A Description An earthqu ...
随机推荐
- js根据ClassName来删除元素(有坑误入)
今天,被一个很简单的问题坑了一下午,基础不扎实.(js根据class名称来删除Dom元素) 但是结果却不是这样的.弄了好久还不知道怎么回事.最后找到了答案. 结果如下:为啥还有test2,4,6呢. ...
- 【用户状态】详细解读Oracle用户ACCOUNT_STATUS的九种状态
转至:http://blog.itpub.net/519536/viewspace-672276/ DBA_USERS视图中ACCOUNT_STATUS记录的用户的当前状态,一般情况下在使用的正常用户 ...
- HTML学习如何布局
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>菜鸟 ...
- SQL:查询时给表起别名
Q 有两个表student.score,查询前一个表的id.name列,后一个表的total列,查询结果通过两个表的id连接起来 要求 使用别名st和sc替换表名进行查询 A SELECT st.id ...
- WPS:添加公式后,行间距变宽的解决方法
找到公式所属段落的样式,右键修改样式 左下角'格式'中选择'段落' 段落间距设置为0,不要勾选与文档网格对齐
- Go基础知识梳理(三)
Go基础知识梳理(三) 结构 type Person struct { name string sex int } func main() { //推荐写法 person := Person{ nam ...
- JZ-027-字符串的排列
字符串的排列 题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和c ...
- Linux CentOS7.X-文件操作命令
一.文件新增,touch 1.touch fileName,其中fileName表示文件名称,代表创建一个空文件: 2.touch fn1 fn2 fn3....fnn,其中fn1至fnn表示n个不同 ...
- 基于python 实现冒泡排序算法
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/17 14:42 # @Author : gylhaut # @Site ...
- 获取bing首页的每日一图
从必应(bing)首页抓取他的每日一图 以前上学时,曾经用python写过一个每天抓取bing每日一图的小工具. 现在想用java来重构一下. 抓取图片的思路 首先获取网页源码 从网页源码中,我们可以 ...