poj2236Wireless Network
Description
In the process of repairing the network, workers can take two kinds of operations at every moment, repairing a computer, or testing if two computers can communicate. Your job is to answer all the testing operations.
Input
1. "O p" (1 <= p <= N), which means repairing computer p.
2. "S p q" (1 <= p, q <= N), which means testing whether computer p and q can communicate.
The input will not exceed 300000 lines.
Output
Sample Input
- 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
- 这道题可以说是最简单的并查集,直接套模板其实就OK了
现附上AC代码:
#include<iostream>
#include<cstdio>
using namespace std;
struct node{
int a,plug;int x,y;
}com[1010]; //结构体变量存储a:并查集的标准量等于自身;plug:标志量,若为1则电脑修好,为0未修好;(x,y):存储电脑的坐标
int N,d;
int find(int x); //找到祖先
void unite(int i,int p); //合并并查集
int main(){
cin>>N>>d;
char w; //这个变量最扯了,刚开始没有用到这个变量,用的是:fflush(stdin),结果wrong answer,改为%c,&w,吃掉空格换行符就可以,郁闷了。
for(int i=1;i<=N;i++)
scanf("%d%c%d%c",&com[i].x,&w,&com[i].y,&w),com[i].a=i,com[i].plug=0;//电脑坐标,以及初始化
char c;
int p,x,y;
//fflush(stdin);
while(~scanf("%c%c",&c,&w)){
if(c=='O') {
scanf("%d%c",&p,&w);
for(int i=1;i<=N;i++)
if(com[i].plug&&(com[i].x-com[p].x)*(com[i].x-com[p].x)+(com[i].y-com[p].y)*(com[i].y-com[p].y)<=d*d) unite(i,p); //满足条件就合并
com[p].plug=1;
}
else {
scanf("%d%c%d%c",&x,&w,&y,&w);
if(find(x)==find(y)) printf("SUCCESS\n"); //查询是否可以相连
else printf("FAIL\n");
}
//fflush(stdin);
}
return 0;
}
int find(int x){
if(com[x].a==x) return x;
else return com[x].a=find(com[x].a);
}
void unite(int i,int p){
i=find(i),p=find(p);
com[i].a=p;
}
poj2236Wireless Network的更多相关文章
- poj-2236-Wireless Network
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 24155 Accepted: 100 ...
- 【并查集】POJ2236-Wireless Network
[题目大意] 已知每一台电脑只能与它距离为d的电脑相连通,但是两台电脑间可以以第三台作为媒介连接.现在电脑全被损坏.每次可以进行两个操作中的一个,或是修好一台电脑,或是查询两台电脑是否连通. [思路] ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- 创建 OVS flat network - 每天5分钟玩转 OpenStack(134)
上一节完成了 flat 的配置工作,今天创建 OVS flat network.Admin -> Networks,点击 "Create Network" 按钮. 显示创建页 ...
- 在 ML2 中配置 OVS flat network - 每天5分钟玩转 OpenStack(133)
前面讨论了 OVS local network,今天开始学习 flat network. flat network 是不带 tag 的网络,宿主机的物理网卡通过网桥与 flat network 连接, ...
- OVS local network 连通性分析 - 每天5分钟玩转 OpenStack(132)
前面已经创建了两个 OVS local network,今天详细分析它们之间的连通性. launch 新的 instance "cirros-vm3",网络选择 second_lo ...
- 再部署一个 instance 和 Local Network - 每天5分钟玩转 OpenStack(131)
上一节部署了 cirros-vm1 到 first_local_net,今天我们将再部署 cirros-vm2 到同一网络,并创建 second_local_net. 连接第二个 instance 到 ...
- 创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)
上一节我们完成了 OVS 的准备工作,本节从最基础的 local network 开始学习.local network 不会与宿主机的任何物理网卡连接,流量只被限制在宿主机内,同时也不关联任何的 VL ...
- Configure a bridged network interface for KVM using RHEL 5.4 or later?
environment Red Hat Enterprise Linux 5.4 or later Red Hat Enterprise Linux 6.0 or later KVM virtual ...
随机推荐
- 循环结构 :do-while
循环结构 :do-while 循环四要素: 1.初始化条件 2.循环条件 3.循环体 4.迭代条件 格式: 1.初始化条件 do{ 3.循环体 4.迭代条件 }while(2.循环条件); publi ...
- IETester——用来测试IE5.5~IE11兼容性的工具
IETester是一款ie浏览器多版本测试工具,能很方便在ie5.5,ie6,ie7,ie8,ie9,ie10,ie11切换,只需安装一个软件,就可以解决N多ie浏览器的问题,满足大部分IE浏览器兼容 ...
- Asp.Net 保存Session的三种方式
一.默认方式,保存在IIS进程中保存在IIS进程中是指把Session数据保存在IIS的运行的进程中,也就是inetinfo.exe这个进程中,这也是默认的Session的存方式,也是最常用的. 这种 ...
- apache重写规则简单理解
1.前提:开启apache重写,并把httpd.conf里的相关的AllowOverride denied改为AllowOverride all 2.重写规则可写在项目根目录的.htaccess文件或 ...
- LA 3263 That Nice Euler Circuit(欧拉定理)
That Nice Euler Circuit Little Joey invented a scrabble machine that he called Euler, after the grea ...
- 终于读完了《Essential C++》
先说这本书的优点吧 真的是一本非常好的书 不拘泥于非常具体的语法点 读这本书,可以体会到面向对象的魅力所在. 缺点就是这本书不太适合入门,当初也不知道是谁推荐我入门看这本书的. 想要大致能看懂这本书, ...
- nbench
http://www.math.utah.edu/~mayer/linux/bmark.html nbench-byte-2.2.3 --> http://www.math.utah.edu/ ...
- 命令行界面CLI
1.hive -e --执行一个或多个查询 hive -e "select * from student limit 3" 2. hive -e > 将临时查询保 ...
- image按钮新增的width属性和height属性
代码实例: test.html <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- centos 6.5 安装 dubbo 管理中心
从http://pan.baidu.com/s/1dDlI7aL下载dubbo-admin-2.5.4.war包,将下载的包放在tomcat的webapps目录,启动tomcat自动解压该war包,然 ...