(并查集)Wireless Network

问题:

地震发生在东南亚。 ACM(亚洲合作医疗团队)已经与膝上电脑建立了无线网络,但是一次意外的余震袭击,网络中的所有计算机都被打破了。计算机一个接一个地修复,网络逐渐开始工作。由于硬件限制,每台计算机只能直接与距离它不远的计算机进行通信。但是,每台计算机都可以被视为两台计算机之间通信的中介,也就是说,如果计算机A和计算机B可以直接通信,或者计算机C可以与A和b进行通信,则计算机A和计算机B可以进行通信。

在修复网络的过程中,工作人员可以随时进行两种操作,修复计算机或测试两台计算机是否可以通信。你的工作是回答所有的测试操作。
输入
第一行包含两个整数N和d(1 <= N <= 1001,0 <= d <= 20000)。这里N是计算机的数量,编号从1到N,D是两台计算机可以直接通信的最大距离。在接下来的N行中,每行包含两个整数xi,yi(0 <= xi,yi <= 10000),这是N台计算机的坐标。从第(N + 1)行到输入结束,有一些操作,这些操作是一个接一个地执行的。每行包含以下两种格式之一的操作:
1.“O p”(1 <= p <= N),表示修复计算机p。
2.“S p q”(1 <= p,q <= N),这意味着测试计算机p和q是否可以通信。

输入不会超过300000行。
产量
对于每个测试操作,如果两台计算机可以通信则打印“SUCCESS”,否则打印“FAIL”。
Sample Input
(注意0和o啊。。)

4 1
0 1
0 2
0 3
0 4
O 1
O 2
O 4
S 1 4
O 3
S 1 4

Sample Output
FAIL
SUCCESS

分析与解答:

我一开始没读懂提,1和2和4修好了,那2可以与3连,4可以与3连为啥1和四不能连?后来我明白了,修好的电脑能连与他距离小于等于d的修好的电脑。而不是说小于d的电脑都能与之连。就是说,可以通信的计算机一定都是已经修好的计算机,而且两台修好的计算机的距离还必须小于等于给定的那个距离。

编号从1-n,只不过这里的电脑多了个坐标,多了个距离的判断。
并查集里放的是相连的电脑编号,最后找也是找电脑编号的根

代码参考:https://blog.csdn.net/superxtong/article/details/51875835

#include<cstdio>
#include<cstring>
int pre[10100 ];
int find(int x)                                       //查找根节点
{ int r=x;while ( pre[r] != r )                           //返回根节点 rr=pre[r];int i=x , j ;while( i != r )                                   //路径压缩{j = pre[ i ];               //j是i的原来的父结点 pre[ i ]= r ;              //现在把i的父结点改成根节点 i=j;                       //再把j的父节点改成根节点 }return r ;
}
void join(int x,int y)                           //判断x y是否连通,//如果已经连通,就不用管了 如果不连通,就把它们所在的连通分支合并起,
{int fx=find(x),fy=find(y);if(fx!=fy)pre[fx ]=fy;
}
struct xyz{int x;int y;
};
xyz a[10086];
int flag[10086];
int main(){memset(flag,0,sizeof(flag));int n,d;scanf("%d%d",&n,&d);for(int i=1;i<=n;++i){pre[i]=i;scanf("%d%d",&a[i].x,&a[i].y);}char ch;while(scanf(" %c",&ch)!=EOF){if(ch=='O'){int k;scanf("%d",&k);flag[k]=1;for(int i=1;i<=n;i++){if(flag[i]&&i!=k){if((a[i].x-a[k].x)*(a[i].x-a[k].x)+(a[i].y-a[k].y)*(a[i].y-a[k].y)<=d*d)join(i,k);}}}if(ch=='S'){int x1,y1;scanf("%d%d",&x1,&y1);if(find(x1)==find(y1))printf("SUCCESS\n");elseprintf("FAIL\n");}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 索引空间大小_查看数据库表中容量大小,表有多少记录,占多少空间以及索引的大小,以及未使用空间...

直接在sqlserver查询窗执行就OK了&#xff0c;也是网上看到的&#xff0c;对日常管理数据库工作者来说也蛮有用的&#xff0c;可以及时的清理冗余的数据&#xff0c;缓解数据库服务器的压力。Create Table #TableSpaceInfo --创建结果存储表(NameInfo NVarchar(50) ,RowsInfo i…

带权并查集-Building Block

题目&#xff1a; John are playing with blocks. There are N blocks (1 < N < 30000) numbered 1…N。Initially, there are N piles, and each pile contains one block. Then John do some operations P times (1 < P < 1000000). There are two kinds of ope…

怎么解决缺少java.doc_java 生成doc帮助文档时出现的问题

正在加载程序包com.csust.czj的源文件...正在构造 Javadoc 信息...标准 Doclet 版本1.7.0_03正在构建所有程序包和类的树...正在生成D:\EclipseProject\TankWar2.7\doc\com\csust\czj\Blood.html...java.lang.IllegalArgumentExceptionat sun.net.www.ParseUtil.decode(ParseUt…

(最短路)Shopping

你刚搬进一套新公寓&#xff0c;有一长串你需要买的东西。不幸的是&#xff0c;买这么多东西需要去很多不同的商店。你想尽量减少购买所需物品所需的驾驶时间。 你的城市被组织成一组由道路连接的十字路口。你的房子和每家商店都在某个十字路口。你的任务是找到从你家出发的最…

java 设计char类型_JAVA中的char类型

1、JAVA中&#xff0c;char占2字节&#xff0c;16位。可在存放汉字2、char赋值char aa; //任意单个字符&#xff0c;加单引号。char a中;//任意单个中文字&#xff0c;加单引号。char a111;//整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。注&am…

(dijkstra记录路径)find the longest of the shortest

Marica对Mirko很生气&#xff0c;因为他找到了一个新的女朋友&#xff0c;她想报仇。由于她不住在同一个城市&#xff0c;她开始为长途旅行做准备。我们知道每条路从一个城市到另一个城市需要多少分钟。 米尔科在车里无意中听到其中一条路正在维修&#xff0c;路被堵住了&…

友元是c还是java_[C++]【类】友元的三种声明及注意事项

类允许其他类或者函数访问它的非公有成员&#xff0c;但我们需要将访问类非公有成员的其他类或者函数成为它的友元。一、友元函数如果类想要把一个函数作为他的友元&#xff0c;只需要增加一条以 friend 关键字开始的函数声明语句即可。例如&#xff1a;class A{friend void fr…

(SPFA+最短路变形+回路对起点的影响)Arbitrage

套利是利用货币汇率的差异将一种货币的一个单位转换为同一货币的多个单位。例如&#xff0c;假设1美元兑0.5英镑&#xff0c;1英镑兑10.0法国法郎&#xff0c;1法国法郎兑0.21美元。然后&#xff0c;通过兑换货币&#xff0c;一个聪明的交易者可以从1美元开始购买0.5 * 10.0 * …

java 金庸群侠传_《金庸群侠传》MOD发展史(官方版本 转自铁血丹心论坛)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼三、MOD初期在事件修改器和场景编辑器被制作出来之后&#xff0c;修改档的制作被引向了新的方向。(此后包括事件修改的“修改档”即可称之为“MOD”&#xff0c;但由于修改的量比较小&#xff0c;故以“初期”命名)这一时期的第一个…

(模拟+floyd)Saving James Bond

题目&#xff1a; This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land at the center of a lake filled with…

python从数据库取数据 显示字段名_如何在python中将SQL数据库中的字段名放入列表中...

以下是我目前掌握的代码&#xff1a;from ConfigParser import *import MySQLdbconfiguration ConfigParser()configuration.read(someconfigfile.conf)db MySQLdb.connect(host configuration.get(DATABASE, MYSQL_HOST),user configuration.get(DATABASE, MYSQL_USER),pa…

详解最短路算法模板(dijkstra+floyd+spfa)

1.Floyd_Warshall算法 核心思路&#xff1a;d[i][j] min{d[i][j], d[i][k] d[k][j]} 从i到j有两种路径&#xff0c;经过k点或是不经过k点&#xff0c;所以我们枚举k即可求所有路的最短路。 适用范围&#xff1a;求任意两点间的最短路&#xff0c;可以有负权&#xff0c;可以…

tomcat java垃圾回收_tomcat启动参数配置,内存和垃圾回收

一般情况下&#xff1a;JAVA_OPTS-Xms2048m -Xmx2048m -XX:MaxPermSize512m -XX:UseParallelGC -XX:ParallelGCThreads8 -XX:UseParallelOldGC -Xloggc:../logs/jvm-gc.log -XX:PrintGCDetails -XX:PrintGCTimeStamps适合于实时要求比较高&#xff1a;-Xms2048m -Xmx2048m -Xmn…

(dijkstra算法+多权值)最短路径问题

给你n个点&#xff0c;m条无向边&#xff0c;每条边都有长度d和花费p&#xff0c;给你起点s终点t&#xff0c;要求输出起点到终点的最短距离及其花费&#xff0c;如果最短距离有多条路线&#xff0c;则输出花费最少的。 Input 输入n,m&#xff0c;点的编号是1~n,然后是m行&am…

java 重定向关键字_SpringMVC 转发、重定向

转发、重定向到其它业务方法org.springframework.stereotype.ControllerRequestMapping("/userController")public classUserController{RequestMapping("/handler1")public String handler1() throwsIOException {//转发给handler2处理return "forwa…

(多源转化成单源dijsktra)一个人的旅行

虽然草儿是个路痴&#xff08;就是在杭电待了一年多&#xff0c;居然还会在校园里迷路的人&#xff0c;汗~),但是草儿仍然很喜欢旅行&#xff0c;因为在旅途中 会遇见很多人&#xff08;白马王子&#xff0c;^0^&#xff09;&#xff0c;很多事&#xff0c;还能丰富自己的阅历&…

最短路模板题

题目&#xff1a; 在每年的校赛里&#xff0c;所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候&#xff0c;却是非常累的&#xff01;所以现在他们想要寻找最短的从商店到赛场的路线&#xff0c;你可以帮助他们吗…

php 取经纬度,php根据地址获取百度地图经纬度的实例方法

首先我们来看全部实例代码&#xff1a;/*** param string $address 地址* param string $city 城市名* return array*/function getLatLng($address‘‘,$city‘‘){$result array();$ak ‘‘;//您的百度地图ak&#xff0c;可以去百度开发者中心去免费申请$url "http://…

(kruskal算法复习+模板)Eddy's picture

题目&#xff1a; Eddy begins to like painting pictures recently ,he is sure of himself to become a painter.Every day Eddy draws pictures in his small room, and he usually puts out his newest pictures to let his friends appreciate. but the result it can be…

php解密 eval( base64_decode,PHP之eval(gzinflate(base64_decode加密解密

从网上下载了个php版本的小游戏站的源码&#xff0c;一直都没有时间看&#xff0c;今天闲着没事看了下各个文件夹的内容&#xff0c;有一个文件引起了小胡的注意&#xff0c;文件名为php.php&#xff0c;打开之后发现了是加密过后的php文件&#xff0c;于是试着找了下相关的解密…