并查集之Wireless Network(一)
题目链接:Wireless Network
大致题意:有n台电脑,有两个操作,修理(O)和检测联通(S),只有修好的才能连接,而且距离不超过D。起始给出n台电脑坐标。
思路:开一个vis,记录已经修好的电脑,然后每次维修的时候遍历,判断是否距离符合,可以的话直接连接。
坑:
1.编号问题 从零开始, 给的1,实际是修的0号
2.距离取等,浮点数比较
3.数据范围
#include<bits/stdc++.h>
using namespace std;
#define ll long long intconst int maxn = 1010;
int n, d;
int s[maxn];
int dx[maxn], dy[maxn];
int vis[maxn] = {0};int find(int x)
{if (s[x] != x)s[x] = find(s[x]);return s[x];
}void unions(int x, int y)
{s[find(x)] = find(y);
}double dis(int a, int b)
{return sqrt( double(dx[a]-dx[b])*(dx[a]-dx[b]) + (dy[a]-dy[b])*(dy[a]-dy[b]) );
}int main()
{scanf("%d %d",&n, &d);for (int i = 0; i <= n; i++)s[i] = i;for (int i = 0; i < n; i++)scanf("%d %d",&dx[i], &dy[i]);char op[2];int p, q, len = 0;while(scanf("%s",op) != EOF){if (op[0] == 'O'){scanf("%d",&p);p--;vis[len++] = p;for (int i = 0; i < len-1; i++){if (vis[i] != p && dis(vis[i], p) <= (double) d)unions(vis[i], p);}}else if (op[0] == 'S'){scanf("%d %d", &p, &q);p--, q--;if (find(p) == find(q))printf("SUCCESS\n");elseprintf("FAIL\n");}else break;}return 0;
}
并查集之Wireless Network(一)相关推荐
- [kuangbin带你飞]专题五 并查集 A - Wireless Network
A - Wireless Network 题目链接:https://vjudge.net/contest/66964#problem/A 题目: An earthquake takes place i ...
- (并查集)Wireless Network
问题: 地震发生在东南亚. ACM(亚洲合作医疗团队)已经与膝上电脑建立了无线网络,但是一次意外的余震袭击,网络中的所有计算机都被打破了.计算机一个接一个地修复,网络逐渐开始工作.由于硬件限制,每台计 ...
- 【转】并查集MST题集
转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 ...
- POJ 2236 Wireless Network 并查集
Wireless Network 并查集 Crawling in process... Crawling failed Time Limit:10000MS Memory Limit:6553 ...
- POJ 2236 Wireless Network (并查集)
Wireless Network 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/A Description An earthqu ...
- java并查集计算机网络连通,poj2236 Wireless Network(并查集)
题意:有n台损坏的电脑,现要将其逐台修复,且使其相互恢复通信功能.若两台电脑能相互通信,则有两种情况,一是他们之间的距离小于d,二是他们可以借助都可到达的第三台已修复的电脑.给出所有电脑的坐标位置,对 ...
- POJ 2236 - Wireless Network ( 并查集 )
题意 一个计算机网络里的计算机都坏了, 现在有两种操作, "O p"代表修复了p机器, "S p q"代表检查 p, q 两台机器是否连接( 直线距离<= ...
- 【POJ - 2236】Wireless Network (并查集)
题干: An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up ...
- 【割边缩点】解题报告:POJ - 3694 - Network(Tarjan割边缩点 + LCA + 并查集优化)
POJ - 3694 - Network 给定一张N个点M条边的无向连通图,然后执行Q次操作,每次向图中添加一条边,并且询问当前无向图中"桥"的数量.N≤105,M≤2∗105,Q ...
- CF-1023F.Mobile Phone Network(并查集缩点)
CF-1023F.Mobile Phone Network(并查集缩点) 题目链接 题意 你手里有K条边还没有分配权值,已经存在M条边带权值,如何给你手中的边分配权值,使得K条边都在最后的最小生成树中 ...
最新文章
- GitHub趋势榜第一的开源低代码项目:mometa
- JS两种声明函数的方法以及调用顺序
- 同一个类 cannot be cast to_2021年动漫类年历推荐
- 初识python你应该知道的6个知识点!
- 基于Xml 的IOC 容器-创建容器
- php 命令链模式,设计模式之------命令链模式
- ffmpeg将视频流转化成图片帧,将图片帧转化为视频(基本无损)
- Android开发工具之DDMS
- Linux中各种锁原理概述
- (3)图像处理-cv2一些函数记录
- SPOJ Qtree系列
- 计算机ip地址查询精确的位置,本机ip地址查询精确的位置 简单两步轻松搞定
- 局域网传文件_安卓用户福音!让文件传输摆脱数据线的束缚,自由穿梭
- 草根站长故事之:我的业余站长之路(中)
- 装上这些插件让Chrome大放异彩
- 汽车零部件开发的流程及项目管理--陈新春老师
- python自动测试相机_OpenCV-Python 相机校准 | 四十九
- Windows XP系统下建立V-PN服务器
- 巴菲特致股东的一封信:2001年
- 有序的uuid(32位)