并查集 poj2236
网址:http://poj.org/problem?id=2236
题意:有n台坏的电脑,如果每两台电脑的距离不能超过d,那么这两台电脑有联系,用字符串O 表示标记第x台电脑维修了,用S判断从X到y是否有联系。。。
题解:用并查集记录和查找每个点的父亲节点,每次输入的同时遍历该点和其他点是否有联系(即距离小于等于的)。。。。。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
struct point
{
int x,y;
int pre;
bool k;
}p[];
void New(int n)
{
for(int i=; i<=n; i++)
{
p[i].pre=i;
}
}
int find(int x)
{
if(p[x].pre!=x)
{
p[x].pre=find(p[x].pre);
}
return p[x].pre;
//return x == p[x].pre ? x : find(p[x].pre);
}
int dis(point p1,point p2)
{
return (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);
}
void Union(point p1,point p2,int d)
{
int root1=find(p1.pre);
int root2=find(p2.pre);
if(root1 != root2)
{
if( dis(p1,p2) <= d * d )
{
p[root2].pre = root1;
}
}
}
int main()
{
char s;
int n , d;
scanf( "%d%d", &n ,&d);
New(n);
for(int i = ; i <= n; i++)
{
scanf( "%d%d", &p[i].x , &p[i].y);
}
while(~scanf("\n%c", &s))
{
int r , a, b;
if(s=='O')
{
scanf("%d", &r);
p[r].k=;
for(int i = ; i <= n; i++)
if(p[i].k && i != r)
Union(p[i] , p[r],d);
}
else
{
scanf("%d%d", &a, &b);
if(find(a) == find(b))
printf("SUCCESS\n");
else
printf("FAIL\n");
}
}
}
并查集 poj2236的更多相关文章
- 基础并查集poj2236
An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wi ...
- 并查集——poj2236(带权并查集)
题目:Wireless Network 题意:给定n台已损坏计算机的位置和计算机最远通信距离d,然后分别根据命令执行以下两种操作: "O p" (1 <= p <= N ...
- poj2236(并查集)
题目链接: http://poj.org/problem?id=2236 题意: 有n台计算机, 已知每台计算机的坐标, 初始时所有计算机都是坏的, 然后修复其中一些计算机, 已修复的计算机距离不超过 ...
- poj-2236 Wireless Network &&poj-1611 The Suspects && poj-2524 Ubiquitous Religions (基础并查集)
http://poj.org/problem?id=2236 由于发生了地震,有关组织组把一圈电脑一个无线网,但是由于余震的破坏,所有的电脑都被损坏,随着电脑一个个被修好,无线网也逐步恢复工作,但是由 ...
- poj2236 基础并查集
题目链接:http://poj.org/problem?id=2236 题目大意:城市网络由n台电脑组成,因地震全部瘫痪,现在进行修复,规定距离小于等于d的电脑修复之后是可以直接相连 进行若干操作,O ...
- POJ2236 Wireless Network 并查集简单应用
Description An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have ...
- POJ-2236.WireleseNetwork.(并查集)
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 43199 Accepted: 178 ...
- poj2236 Wireless Network(并查集直接套模板
题目地址:http://poj.org/problem?id=2236 题目大意:n台电脑都坏了,只有距离小于d且被修好的电脑才可以互相联系,联系可传递.输入n和d,n个点的坐标x y.两个操作:O ...
- 《挑战程序设计竞赛》2.4 数据结构-并查集 POJ1182 2236 1703 AOJ2170
POJ1182 http://poj.org/problem?id=1182 题目 难得的中文题... 食物链 Time Limit: 1000MS Memory Limit: 10000K Tota ...
随机推荐
- ios-将代码创建的视图控件放入拖拽控件的下面
如图所示 图片是拖拽上去的imageView,橘黄色控件是在代码中创建的添加上去的,此时黄色view在imageView 上方 调用方法bringSubviewToFront:试图将imageView ...
- 配置Maven环境并创建简单的web项目步骤
Maven的介绍 主要包含以下三个内容: 1.POM(Project Object Model):即An xml file(pom.xml):依赖管理.生命周期和插件的需要等都在pom.xml文件中完 ...
- 关于mybatis的理解
http://blog.csdn.net/jiuqiyuliang/article/details/45132493 写的不错很好!
- iOS 开发:利用第三方插件来安装CoCoapods
引言:通过上一篇博客我们知道了怎么样去通过终端来安装CoCoapods,这一篇我们着重与用第三方插件来安装CoCoapods: 1. 首先在提下链接下载插件 https://github.com/ka ...
- 扩展Wcf call security service, 手动添加 Soap Security Head.
有次我们有个项目需要Call 一个 Java 的 web service, Soap包中需要一个 Security Head <soapenv:Header> <wsse:Secur ...
- CentOS7安装ftp服务器
一.问题的提出 想在windows环境下远程连接CentOS的文件并编辑 二.问题的解决 # 安装vsftp服务[root@localhost ~]# yum -y install ftp vsftp ...
- Array常用方法
定义二维数组: list = [['保密',''],['男',1],['女',0]] 引用 怎么创建与返回值是二维数组形式 不知道你想要怎样的答案 如果是一方法想要返回二维数组,方法的最后一行是那个数 ...
- UICollectionView 自定义组头组尾的XIB方法
UICollectionView的加载方式和Tableview很像,基本上加载的方法都差不多,尤其是它的数据源的方法和代理方法基本上类似,只不过是名字上有点细微的差别而已.这里面不赘述. 1. UIC ...
- Database cannot be started in this edition of SQL Server" error when restoring a Microsoft Dynamics CRM database
处理办法:http://support.microsoft.com/kb/2567984
- Fuzz的那些事
Fuzz这个词汇行内的都懂,fuzz工具我就不多说了. 今天,说说fuzz前的准备工作--如何对软件进行修改实现可自动化和无人值守fuzz. 很多软件会有试用期.弹窗.覆盖提示.人机交互等等,这些都会 ...