POJ 2236-Wireless Network(並查集)
Wireless Network
Time Limit: 10000MS | Memory Limit: 65536K | |
Total Submissions: 21632 | Accepted: 9060 |
Description
An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wireless network with the lap computers, but an unexpected aftershock attacked, all computers in the network were all broken. The
computers are repaired one by one, and the network gradually began to work again. Because of the hardware restricts, each computer can only directly communicate with the computers that are not farther than d meters from it. But every computer can be regarded
as the intermediary of the communication between two other computers, that is to say computer A and computer B can communicate if computer A and computer B can communicate directly or there is a computer C that can communicate with both A and B.
In the process of repairing the network, workers can take two kinds of operations at every moment, repairing a computer, or testing if two computers can communicate. Your job is to answer all the testing operations.
In the process of repairing the network, workers can take two kinds of operations at every moment, repairing a computer, or testing if two computers can communicate. Your job is to answer all the testing operations.
Input
The first line contains two integers N and d (1 <= N <= 1001, 0 <= d <= 20000). Here N is the number of computers, which are numbered from 1 to N, and D is the maximum distance two computers can communicate directly. In the next
N lines, each contains two integers xi, yi (0 <= xi, yi <= 10000), which is the coordinate of N computers. From the (N+1)-th line to the end of input, there are operations, which are carried out one by one. Each line contains an operation in one of following
two formats:
1. "O p" (1 <= p <= N), which means repairing computer p.
2. "S p q" (1 <= p, q <= N), which means testing whether computer p and q can communicate.
The input will not exceed 300000 lines.
1. "O p" (1 <= p <= N), which means repairing computer p.
2. "S p q" (1 <= p, q <= N), which means testing whether computer p and q can communicate.
The input will not exceed 300000 lines.
Output
For each Testing operation, print "SUCCESS" if the two computers can communicate, or "FAIL" if not.
Sample Input
4 1 0 1 0 2 0 3 0 4 O 1 O 2 O 4 S 1 4 O 3 S 1 4
Sample Output
FAIL SUCCESS
Source
POJ Monthly,HQM
/*
* Copyright (c) 2016, 煙臺大學計算機與控制工程學院
* All rights reserved.
* 檔名稱:father.cpp
* 作 者:單昕昕
* 完成日期:2016年1月19日
* 版 本 號:v1.0
*/
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int N=1000+3;
int x[N],y[N],set[N];
bool valid[N];
int set_find(int d)
{
if (set[d]<0)
return d;
return set[d]=set_find(set[d]);
}
void join(int p,int q)
{
p=set_find(p);
q=set_find(q);
if(p!=q)
set[p]=q;
}
int main()
{
int n,d,i,p,q;
char c;
scanf("%d%d",&n,&d);
for(i=1; i<=n; ++i)
scanf("%d%d",&x[i],&y[i]);
memset(valid,false,sizeof(valid));
memset(set,-1,sizeof(set));
while(cin>>c)
{
if(c=='O')
{
scanf("%d",&p);
valid[p]=true;
for(i=1; i<=n; ++i)
if(valid[i]&&((x[i]-x[p])*(x[i]-x[p])+(y[i]-y[p])*(y[i]-y[p])<=d*d))//距離
join(i,p);
}
else if(c=='S')
{
scanf("%d%d",&p,&q);
if(set_find(p)==set_find(q))
printf("%s\n","SUCCESS");
else
printf("%s\n","FAIL");
}
}
return 0;
}
相關文章
- Wireless Network(並查集(裸))並查集
- POJ2492(種類並查集)並查集
- POJ 1308-Is It A Tree?(並查集)並查集
- 【POJ 1182】食物鏈(並查集)並查集
- POJ1797 Heavy Transportation【並查集+貪心】並查集
- POJ 1703-Find them, Catch them(並查集)並查集
- POJ 2492 A Bug's Life(關係並查集)並查集
- POJ 1733 Parity【擴充套件域並查集】套件並查集
- POJ2253 Frogger【並查集+貪心】並查集
- POJ 2492-A Bug's Life(帶權並查集)並查集
- POJ 2524-Ubiquitous Religions(入門並查集)UI並查集
- POJ 1703 Find them, Catch them (關係並查集)並查集
- poj 1182 並查集經典問題並查集
- POJ-1182-食物鏈(並查集種類)並查集
- POJ 1611-The Suspects(並查集-同一集合)並查集
- 並查集到帶權並查集並查集
- POJ 2492 A bug's life【擴充套件域 | 邊帶權並查集】套件並查集
- POJ 1182(食物鏈-另類做法【拆點】)[Template:並查集]並查集
- 【並查集】【帶偏移的並查集】食物鏈並查集
- POJ 1182 食物鏈【擴充套件域 | 邊帶權並查集】套件並查集
- POJ 2513-Colored Sticks(連線木棍-trie樹+並查集+尤拉通路)並查集
- 並查集(一)並查集的幾種實現並查集
- 並查集(小白)並查集
- 3.1並查集並查集
- 並查集(Union Find)並查集
- 並查集應用並查集
- The Door Problem 並查集並查集
- 並查集練習並查集
- 並查集的使用並查集
- 並查集—應用並查集
- 寫模板, 並查集。並查集
- 並查集跳躍並查集
- 各種並查集並查集
- 並查集(二)並查集的演算法應用案例上並查集演算法
- The Suspects-並查集(4)並查集
- [leetcode] 並查集(Ⅰ)LeetCode並查集
- [leetcode] 並查集(Ⅱ)LeetCode並查集
- [leetcode] 並查集(Ⅲ)LeetCode並查集