【Noip模拟 20161004】局域网
问题描述
所有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】局域网的更多相关文章
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
- 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...
- 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...
- 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...
- CH Round #58 - OrzCC杯noip模拟赛day2
A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...
- CH Round #52 - Thinking Bear #1 (NOIP模拟赛)
A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...
随机推荐
- 廖雪峰Java2面向对象编程-5包和classpath-1静态字段和方法
1.静态字段 1.1定义:用static修饰的字段称为静态字段 普通字段在每个实例中都有自己的一个独立的空间 静态字段只有1个共享空间,所有实例都共享该字段. public class Person{ ...
- Zabbix 告警内容配置
#配置媒介告警类型 #----------------------------------------------------------------------------------------- ...
- junit中线程需要注意的问题
Junit主线程执行完毕后,就会结束进程,不关注是否有其他线程在运行.当Junit运行完毕后,如果其他线程还没有执行完毕,那么不会再执行. 使用CountDownLatch,保证启动的线程运行结束后, ...
- centos7.0KVM虚拟化
需要在图形化界面完成实验 查看CPU信息 # cat /proc/cpuinfo centos7默认安装的虚拟化包 # yum list open*tools 如果没安装就安装 #yum instal ...
- 知识点:Mysql 基本用法之触发器
触发器 使用触发器可以定制用户对表进行[增.删.改]操作时前后的行为 注意:没有查询 一 .创建触发器 触发器基础语法: # 插入前 CREATE TRIGGER tri_before_insert_ ...
- 0002 - Spring MVC 拦截器源码简析:拦截器加载与执行
1.概述 Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权限验证.记录请求信息的日 ...
- 如何优雅地等待所有的goroutine退出
转自:https://www.cnblogs.com/cobbliu/p/4461866.html goroutine和channel是Go语言非常棒的特色,它们提供了一种非常轻便易用的并发能力.但是 ...
- php namespace use 研究
1.file1.php: <?php namespace foos; class demo{ function testfn(){ echo "sdlkfjskdjf"; } ...
- C#中唯一的三元运算符
条件运算符?:接受三个操作数,是C#中唯一的三元运算符 ; ? : ; //转换成if选择结果如下 ) { j = ; } else { j = ; } 需要根据还可以嵌套三元运算符 ; ) ? : ...
- JIRA敏捷sprint需求统计设置
1.JIRA->My Dashboard ->添加它的过滤条件 2.过滤条件产生,将sql拷贝至步骤1编辑的JQL中