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 ...
随机推荐
- Service层抽象规范
Service层是整个web系统的负责业务逻辑一块,最有必要实现抽象,Service层要达到复用性,低耦合性.那么该如何抽象呢?一般遵循以下原则 1.单一职责(SRP) 2.开放-封闭(OCP) 3. ...
- Leaflet:LayerGroup、FeatureGroup
LayerGroup(Layer) Layer 用法:把一些Layer集中到一个组Group中,以便作为一个整体进行操作.如果把该Group加入到了Map中,任何从这个Group增加或者移除Layer ...
- VS常用的快捷键
整理代码 Ctrl+k+f 注释 Ctrl+k+c 取消注释 Ctrl+k+u 帮助文档 F1 无调试启动 ...
- 矩池云安装/修改 cuda、cudnn、nvcc、tensorRT 教程
在整个机器学习的过程中,配置环境一直是一个比较复杂的事情,今天介绍几种根据英伟达官方文档来配置环境的方法. 安装方案 https://gitlab.com/nvidia/container-image ...
- quartz框架(六)-ThreadPool
ThreadPool 本篇博文,博主将介绍Quartz框架中ThreadPool线程池相关的内容.线程池顾名思义,就是一个可以帮助我们来进行线程资源管理的对象.在web开发中,常见的就有数据库连接池, ...
- Sqlserver 2008 导出数据库
sqlserver2008中导出数据库: ①当数据库中的数据量比较大时,可使用备份的方法. 路径可以默认,想自定义就点击[添加],最后[确定]即可. ②当数据量不是很大时,可以采用导出SQL执行语句的 ...
- Dcate Admin 的使用
1:laravel安装框架 composer create-project --prefer-dist laravel/laravel 项目名称 2:配置数据库 DB_CONNECTION=mysql ...
- 构造方法__construct()与析构方法__destruct() 构造方法:刚出生时婴儿的啼哭 析构方法:老人临终时的遗言
<?phpclass person{ var $name; var $sex; var $age;//构造方法 function __construct($name, $sex, $age) { ...
- ESXI 虚拟化误删除管理端口Management Network (vmk0),导致无法访问后台解决方案
按F2开启控制台shell,启用后返回.按Alt+F1打开终端. 输入 esxcfg-vmknic -a -i 192.168.1.10 -n 255.255.255.0 "Manageme ...
- Clickhouse 与 Kafka 的数据同步
作者: LemonNan 原文地址: https://mp.weixin.qq.com/s/SUUHF9R_FKg-3vq7Q3cwBQ 注: 转载需注明作者及原文地址 介绍 Clickhouse 本 ...