POJ 2236 (简单并查集) Wireless Network
题意:
有n个电脑坏掉了,分别给出他们的坐标
有两种操作,可以O x表示修好第x台电脑,可以 S x y表示x y是否连通
两台电脑的距离不超过d便可连通,两台电脑是连通的可以直接连通也可以间接通过第三台电脑连通
思路:
每次修好一台电脑都和前面已经修好的电脑比较一下如果距离小于d而且不在同一网络,便合并在一起即可
//#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; const int maxn = + ;
struct Pos
{
int x, y;
}pos[maxn]; int p[maxn], o[maxn]; int Find(int a)
{
return p[a] == a ? a : p[a] = Find(p[a]);
} void Union(int a, int b)
{
int pa = Find(a);
int pb = Find(b);
if(pa != pb)
p[pa] = pb;
} int main(void)
{
#ifdef LOCAL
freopen("2236in.txt", "r", stdin);
#endif int n, d, a, b, cnt = ;
char cmd[];
scanf("%d%d", &n, &d);
for(int i = ; i <= n; ++i) p[i] = i;
memset(o, false, sizeof(o));
for(int i = ; i <= n; ++i)
scanf("%d%d", &pos[i].x, &pos[i].y);
while(scanf("%s", cmd) != EOF)
{
if(cmd[] == 'O')
{
scanf("%d", &a);
o[cnt++] = a;
for(int i = ; i < cnt - ; ++i)
{
if((pos[a].x-pos[o[i]].x)*(pos[a].x-pos[o[i]].x) + (pos[a].y-pos[o[i]].y)*(pos[a].y-pos[o[i]].y) <= d * d)
{
Union(a, o[i]);
}
}
}
else
{
scanf("%d%d", &a, &b);
if(Find(a) == Find(b))
puts("SUCCESS");
else
puts("FAIL");
}
} return ;
}
代码君
POJ 2236 (简单并查集) Wireless Network的更多相关文章
- Poj(2236),简单并查集
题目链接:http://poj.org/problem?id=2236 思路很简单,傻逼的我输出写成了FALL,然后遍历的时候for循环写错了,还好很快我就Debug出来了. #include < ...
- POJ 2524 (简单并查集) Ubiquitous Religions
题意:有编号为1到n的学生,然后有m组调查,每组调查中有a和b,表示该两个学生有同样的宗教信仰,问最多有多少种不同的宗教信仰 简单并查集 //#define LOCAL #include <io ...
- poj 2236【并查集】
poj 2236 Description An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical t ...
- POJ 2492 (简单并查集) A Bug's Life
题意:有编号为1~n的虫子,开始假设这种昆虫是异性恋.然后已知xi 和 yi进行交配,根据已知情况分析能否推理出其中是否有同性恋 这道题和 POJ 1182 食物链 十分相似,不过在更新与父节点关系的 ...
- poj 1611 简单并查集的应用
#include<stdio.h> #define N 31000 int pre[N]; int find(int x) { if(x!=pre[x]) pre[x]=find( ...
- poj1611 简单并查集
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 32781 Accepted: 15902 De ...
- 1213 How Many Tables(简单并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 简单并查集,统计单独成树的数量. 代码: #include <stdio.h> #i ...
- 【简单并查集】Farm Irrigation
Farm Irrigation Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Tot ...
- ACM_“打老虎”的背后(简单并查集)
“打老虎”的背后 Time Limit: 2000/1000ms (Java/Others) Problem Description: “习大大”自担任国家主席以来大力反腐倡廉,各地打击贪腐力度也逐步 ...
随机推荐
- javascript实现数据结构:串--定长顺序存储表示以及kmp算法实现
串(string)(或字符串)是由零个或多个字符组成的有限序列.串中字符的数目称为串的长度.零个字符的串称为空串(null string),它的长度为零. 串中任意个连续的字符组成的子序列称为该串的子 ...
- 浅谈 OneAPM 在 express 项目中的实践
[编者按]OneAPM 运营团队,近日在 github 上发现了一篇文章,特别奉献给大家.本文作者王宇先生从2015年年初就开始使用我们的产品,也是OneAPM 的忠实用户. OneAPM 是一个优秀 ...
- 在 Java 中如何更高效地存储和管理 SQL 语句?
[编者按]还在为管理 Java 代码中的 SQL 语句而烦恼吗?让 Zemian 帮你摆脱困境吧!本文系 OneAPM 工程师编译整理 注意:使用java.util.Properties#loadFr ...
- login shell 和 non-login shell 的区别
介绍之前先思考一个问题:有时我们通过su命令切换用户后,却发现并没有进入该用户的shell环境.这是为什么? login shell:取得bash时需要完整的登录流程.就是说通过输入账号和密码登录系统 ...
- jstl 的应用 java
JSTL :JSP Standard Tag Library,JSP标准标签库 1.导入包 jstl.jar standard.jar 2.页面中添加标识 <%@taglib uri=" ...
- 处理HTTP状态码
1.1.4 处理HTTP状态码 上一节介绍HttpClient访问Web资源的时候,涉及HTTP状态码.比如下面这条语句: int statusCode=httpClient.executeMeth ...
- http://linuxme.blog.51cto.com/1850814/372960
http://linuxme.blog.51cto.com/1850814/372960 http://os.51cto.com/art/201404/435129.htm
- sql 数据库换行
制表符 CHAR(9) 换行符 CHAR(10) 回车 CHAR(13)
- 【转】SIP 中的Dialog,call,session 和 transaction
如果你对Sip协议中Call, Dialog, Transaction和Message之间的关系感觉到迷惑,那么,那么我可以告诉你,你并不孤单,因为大多数初学者对于这些名词之间的关系都会感到疑惑. ...
- JavaWeb项目开发案例精粹-第4章博客网站系统-003Dao层
1. package com.sanqing.dao; import java.util.List; import com.sanqing.fenye.Page; import com.sanqing ...