简单的并查集
题目
http://poj.org/problem?id=2236
题意
网断了!要把网络修好,电脑是通过无线来通信的,通信范围是d。也就是如果两台电脑没坏,且之间的距离小于d,那这两台电脑就可以相互通信。
一共有n台电脑,初始时每台电脑都是坏的,首先给出每台电脑的坐标,然后每次可以进行两种操作:
1. ‘O’操作,修好一台电脑
2. ‘S’操作,测试两台电脑是否可以通信
输出所有的测试结果,如果可以通信输出“SUCCESS”,否则输出“FAIL”。
题目解析
简单的并查集问题,对于’O’操作,遍历所有已经修好的电脑,如果之间的距离小于d,就合并。对于’S’操作,判断两台电脑是否在一个集合里。
注意’O’和’S’的输入,会接收终端的换行符。
代码
1 | /* http://poj.org/problem?id=2236 */ |