题目链接: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(一)相关推荐

  1. [kuangbin带你飞]专题五 并查集 A - Wireless Network

    A - Wireless Network 题目链接:https://vjudge.net/contest/66964#problem/A 题目: An earthquake takes place i ...

  2. (并查集)Wireless Network

    问题: 地震发生在东南亚. ACM(亚洲合作医疗团队)已经与膝上电脑建立了无线网络,但是一次意外的余震袭击,网络中的所有计算机都被打破了.计算机一个接一个地修复,网络逐渐开始工作.由于硬件限制,每台计 ...

  3. 【转】并查集MST题集

    转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 ...

  4. POJ 2236 Wireless Network 并查集

    Wireless Network 并查集 Crawling in process... Crawling failed Time Limit:10000MS     Memory Limit:6553 ...

  5. POJ 2236 Wireless Network (并查集)

    Wireless Network 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/A Description An earthqu ...

  6. java并查集计算机网络连通,poj2236 Wireless Network(并查集)

    题意:有n台损坏的电脑,现要将其逐台修复,且使其相互恢复通信功能.若两台电脑能相互通信,则有两种情况,一是他们之间的距离小于d,二是他们可以借助都可到达的第三台已修复的电脑.给出所有电脑的坐标位置,对 ...

  7. POJ 2236 - Wireless Network ( 并查集 )

    题意 一个计算机网络里的计算机都坏了, 现在有两种操作, "O p"代表修复了p机器, "S p q"代表检查 p, q 两台机器是否连接( 直线距离<= ...

  8. 【POJ - 2236】Wireless Network (并查集)

    题干: An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up ...

  9. 【割边缩点】解题报告:POJ - 3694 - Network(Tarjan割边缩点 + LCA + 并查集优化)

    POJ - 3694 - Network 给定一张N个点M条边的无向连通图,然后执行Q次操作,每次向图中添加一条边,并且询问当前无向图中"桥"的数量.N≤105,M≤2∗105,Q ...

  10. CF-1023F.Mobile Phone Network(并查集缩点)

    CF-1023F.Mobile Phone Network(并查集缩点) 题目链接 题意 你手里有K条边还没有分配权值,已经存在M条边带权值,如何给你手中的边分配权值,使得K条边都在最后的最小生成树中 ...

最新文章

  1. GitHub趋势榜第一的开源低代码项目:mometa
  2. JS两种声明函数的方法以及调用顺序
  3. 同一个类 cannot be cast to_2021年动漫类年历推荐
  4. 初识python你应该知道的6个知识点!
  5. 基于Xml 的IOC 容器-创建容器
  6. php 命令链模式,设计模式之------命令链模式
  7. ffmpeg将视频流转化成图片帧,将图片帧转化为视频(基本无损)
  8. Android开发工具之DDMS
  9. Linux中各种锁原理概述
  10. (3)图像处理-cv2一些函数记录
  11. SPOJ Qtree系列
  12. 计算机ip地址查询精确的位置,本机ip地址查询精确的位置 简单两步轻松搞定
  13. 局域网传文件_安卓用户福音!让文件传输摆脱数据线的束缚,自由穿梭
  14. 草根站长故事之:我的业余站长之路(中)
  15. 装上这些插件让Chrome大放异彩
  16. 汽车零部件开发的流程及项目管理--陈新春老师
  17. python自动测试相机_OpenCV-Python 相机校准 | 四十九
  18. Windows XP系统下建立V-PN服务器
  19. 巴菲特致股东的一封信:2001年
  20. 有序的uuid(32位)

热门文章

  1. python爬取斗鱼礼物数据_Python---20行代码爬取斗鱼平台房间数据(上)
  2. 天锐绿盾加密软件支持域控吗?
  3. 在线JSON校验格式化工具,文本对比工具,截图notepad工具
  4. python播放音频文件
  5. java连接数据库配置文件
  6. android模拟器GPS简单应用(一)
  7. 软件测试的方法有哪些?
  8. Android平台上使用SDL官方demo播放视频(使用ffmpeg最新版解码)
  9. SQL 常用脚本大全
  10. Linux vim常用命令