无线网络
来源:互联网 发布:网络电视怎么看电视台 编辑:程序博客网 时间:2024/04/28 23:03
题意描述
东南亚发生地震。ACM(亚洲合作医疗队)已经搭载了膝上型计算机的无线网络,但意外的余震遭到袭击,网络中的所有计算机都被破坏。电脑逐一修复,网络逐渐开始重新工作。由于硬件限制,每台计算机只能直接与距离它不远的计算机进行通信。但是每个计算机都可以被视为两台计算机之间的通信中介,也就是说计算机A和计算机B可以通信,如果计算机A和计算机B可以直接通信,或者有一个计算机C可以与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。
“S p q”(1 <= p,q <= N),这意味着测试计算机p和q是否可以通信。
输入不超过30万行。
产量
对于每个测试操作,如果两台计算机可以通信,请打印“SUCCESS”,否则打印“FACC”。
样品输入
4 1
0 1
0 2
0 3
0 4
O 1
O 2
O 4
S 1 4
O 3
S 1 4
样品输出
失败
成功
代码
#include<cstdio>#include<cstring>int n,d,p[1010];bool vis[1010];int map[1010][1010];struct node{ int x,y;}a[1010];void init(){ for(int i=1;i<=n;i++) p[i]=i;}int getfather(int x){ if(x!=p[x]) p[x]=getfather(p[x]); return p[x];}void Union(int a,int b){ a=getfather(a); b=getfather(b); p[a]=b;}int cal(int i,int j){ return((a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j].y));}int main(){ scanf("%d%d",&n,&d); d=d*d; memset(vis,false,sizeof(vis)); for(int i=1;i<=n;i++) scanf("%d%d",&a[i].x,&a[i].y); init(); for(int i=1;i<n;i++) for(int j=i;j<=n;j++) if(i==j) map[i][j]=map[j][i]=0; else map[i][j]=map[j][i]=cal(i,j); char str[10]; while(scanf("%s",str)!=EOF) { if(str[0]=='O') { int x; scanf("%d",&x); if(!vis[x]) { vis[x]=true; int a=getfather(x); for(int i=1;i<=n;i++) if(i!=x&&vis[i]&&(getfather(i)==a || map[i][x]<=d)) Union(i,x); } } else { int x,y; scanf("%d%d",&x,&y); if(vis[x]&&vis[y]) { int a=getfather(p[x]); int b=getfather(p[y]); if(a==b) printf("成功"); else printf("失败"); } else printf("失败"); } } return 0;}
测试截图
阅读全文
0 0
- 无线网络
- 无线网络
- 无线网络
- 无线网络
- 无线网络
- 无线网络
- 无线网络
- 无线网络
- 无线网络
- 使用无线网络
- 无线网络FAQ
- 无线网络常识
- 无线网络架设
- 破解无线网络
- 关于无线网络
- 无线网络盈利模式
- 无线网络组网。。
- 入侵无线网络
- [论文笔记]Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
- 单调栈模型--山峰
- Android中启动界面左右滑动实例
- 字符串前不加_T的相关设置
- 继承(狗继承动物)
- 无线网络
- 关于正则表达式
- UESTC
- CSS样式表进行table水平居中、垂直居中、自动填充
- poj 2377Bad Cowtractors
- HDU 2795 Billboard
- sdut3488 小明の魔法计划
- 简述AIDL通信(后续)
- GRUB下对linux系统的引导