问题描述

所有SZSZ 学生翘首以盼的新教学楼总算快要竣工了,接下来到了网络布线的时候。网络系统的总布局是由nn台计算机组成的有线局域网,每根网线长度为dd,正常情况下,网线是可以缠绕使其变短但是不能拉长的,即每台计算机都能跟与它距离不超过dd的任何计算机通讯。

OIerOIer们试着一台一台地调试计算机网络,以构建整个局域网。有时在构建的过程中,他们需要测试一下某两台计算机能否通讯(如果他们能通过别的正常的计算机进行通 讯,也算他们之间可以通讯,即“能否通讯”可以是间接的)。作为OIerOIer,你自然也逃不掉模拟修复网络过程的任务,同时你还要回答“能否通讯”的询问。

输入格式

第一行两个整数,nn和dd,nn 表示计算机的数目,dd 表示网线的长度。接下来的nn行,每行两个整数Xi,YiXi,Yi,表示每台计算机的坐标。

接下来有许多行,每行都是一个操作(或者是修复操作,或者是询问操作)。

操作的格式如下:

O pO p 修复操作,表示修复编号为pp 的电脑;

S p qS p q 询问操作,询问编号为pp 和编号为qq 的电脑能否通讯。

以上操作,均保证1≤p≤n,1≤q≤n1≤p≤n,1≤q≤n

如果一台电脑尚未被修复,则它不能和任何电脑通讯。

输出格式

对于每个询问操作:如果能够通讯,输出一行SUCCESSSUCCESS;如果无法通讯, 输出一行FAILFAIL。

输入样例

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

输出样例

FAIL
SUCCESS

数据规模

设操作次数为qq

对于50%的数据,n≤300n≤300, q≤10000q≤10000;

对于100%的数据,n≤1001n≤1001, q≤300000q≤300000, 1≤d≤200001≤d≤20000, 0≤|xi|≤109,0≤|yi|≤1090≤|xi|≤109,0≤|yi|≤109。

题目分析

这一题给我留下了深深的阴影,倒也不是很难,就是很坑。我们要查找的是每两个点是否相等,如果你用旋转卡柯我没有办法,我的做法是用一个数组记录入图的点,然后把这些点用并查集维护即可。输出的时候判断一下两个点是否都已经被访问过了,三目输出即可。

坑点来了:我交了几发,发现自己爆零了,最后我发现:我在递归函数加了一个inline,然后我就死的很壮烈。记住:递归函数不要用这货。

代码实现

#include<bits/stdc++.h>
using namespace std;
#define RE register long long
#define int long long
#define N 1001
inline int read(){
register int x=;
register char c=getchar();
while(c<) c=getchar();
while(c>) x=x*+(c^),c=getchar();
return x;
}int x[N],y[N],f[N],n,d,p,q,top,a[N];
int vis[N];
int find(RE x){return f[x]==x?x:f[x]=find(f[x]);}
signed main(){
freopen("net.in","r",stdin),freopen("net.out","w",stdout);
n=read(),d=read();
for (RE i=;i<=n;++i) x[i]=read(),y[i]=read(),f[i]=i;
char c;
while(~scanf("%c",&c)){p=read();
if(c=='O'){
for (RE i=;i<=top;++i){q=a[i];
if ((x[p]-x[q])*(x[p]-x[q])+(y[p]-y[q])*(y[p]-y[q])<=d*d)
if (find(p)^find(q)) f[find(p)]=find(q);
}a[++top]=p,vis[p]=;
}else{q=read();
if (!vis[p]||!vis[q]) puts("FAIL");
else puts(find(p)==find(q)?"SUCCESS":"FAIL");
}
}return ;
}

代码分析

我的代码很容易看懂,不分析了。

哦,我还要讲我被绿的故事:1,开篇点题,引出本文“绿”的主旨。2,设置悬念,吸引读者阅读兴趣。3,采用了夸张的修辞手法,夸张了事情的严重性,使读者易于接受。

呃,其实没有啦,我们好着呢。

【Noip模拟 20161004】局域网的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  3. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  4. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  5. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  6. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  7. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  8. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  9. CH Round #52 - Thinking Bear #1 (NOIP模拟赛)

    A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...

随机推荐

  1. windows修改远程桌面端口3389

    regedit 按照路径打开,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-T ...

  2. 聊天,发朋友圈可以不打字,但是表情怎么能少呢?那么如何用win10自带的微软拼音输入法打出表情呢?

    Step1:将光标定位到你要输入的地方 Step2:将输入法切换为中文,win10是[Win+空格] Step3:打出想要的表情类型,例如开心,(切记输完后不要选择文字,就保持拼音状态),保持下图的样 ...

  3. Jmeter(二)Jmeter目录介绍

    看过许多有关Jmeter的博客,算得上的收获颇丰:不过最牛逼的博客还是“官方文档”,官方文档是ApacheJmeter自己对自己产品的说明,论起对自己产品的理解程度,那肯定是自己嘛...因此推荐大家从 ...

  4. [UE4]使用UnrealVS扩展快速编译C++代码

    一.如果UE4 编辑器已经打开,则VS中的重新生成项目将不能使用,一定要关了UE4 编辑器才可以.一般不是有VS自身的编译UE4的C++代码 二.epic提供了UnrealVS扩展,可以快速编译C++ ...

  5. win7运行bat文件 一闪而过 解决 必须要将生成器放在C盘等没有中文的目录里

    1.在*.bat所在的文件夹按住shift 键然后鼠标右键,选择“在此处打开命令窗口”, 2.输入bat文件名称然后回车 这样就不会自动消失(只在win7 x64 上尝试过)

  6. iproute2 对决 net-tools

    如今很多系统管理员依然通过组合使用诸如ifconfig.route.arp和netstat等命令行工具(统称为net-tools)来配置网络功能,解决网络故障.net-tools起源于BSD的TCP/ ...

  7. Delphi 解决Utf8ToAnsi和Utf8DeCode转换编码为空的问题

    //delphi DecodeUtf8Str解决系统自带UTF8解码缺陷 function DecodeUtf8Str(const S: UTF8String): WideString; var le ...

  8. mysql sql中的一些问题,Null与空字符

    mysql中的空值,NULL,空字符 Mysql数据库是一个基于结构化数据的开源数据库.SQL语句是MySQL数据库中核心语言.不过在MySQL数据库中执行SQL语句,需要小心两个陷阱. 陷阱一:空值 ...

  9. Django之三种文件上传

    方式一: 通过form表单提交到后台 前端: <!DOCTYPE html> <html lang="en"> <head> <meta ...

  10. VMware虚拟机上配置nginx后,本机无法访问问题

    nginx装在CentOS上,用本机访问虚拟机的时候却出现了不能访问的问题,查了资料以后,原来是防火墙的问题.具体情况如下:防火墙可以ping通虚拟机,虚拟机也可以ping通防火墙.接着检查了服务器端 ...