Time Limit: 10000MS | Memory Limit: 65536K | |
Total Submissions: 14086 | Accepted: 5962 |
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
题意:
有N(1到1001)台机器和D最小距离(0到20000),给出每台机器的坐标(X,Y)(0到10000)。O代表已经修好某台机器,S代表询问A和B机器间是否能联系上。要能联系则必须两机器的坐标距离不大于D,如果A和B能连上,B和C能连上,那么A和C也能连上。输出当询问S时,两部机器能联系上的结果,能则输出SUCCESS,不能则输出FAIL。
思路:
普通并查集。但是与一般不同是它有一个距离的条件,并且每次输入O可能会更新一次连通集合。用rep数组来表示机器i是否已经修好,1为修好,0为没有修好。当输入O时,循环一次所有机器,当循环到有一台机器满足距离小于1,且这部机器已经是修好的,那就将该机器合并到该集合中。当输入S时,判断A和B的根节点是否相同则知道是否能连接上。
AC:
#include<stdio.h> #include<math.h> #include<string.h> typedef struct { int x; int y; }pos; pos num[1005]; int root[1005],rep[1005]; int n; double distance(pos a,pos b) { double s; s=sqrt(pow((double)a.x-(double)b.x,2)+pow((double)a.y-(double)b.y,2)); return s; } int find(int a) { int x=a,t; while(x!=root[x]) x=root[x]; while(x!=a) { t=root[a]; root[a]=x; a=t; } return x; } void merge(int a,int b) { int fa,fb; fa=find(a); fb=find(b); if(fa!=fb) root[fa]=fb; } int main() { int d; char c[5]; int a,b; scanf("%d%d",&n,&d); memset(rep,0,sizeof(rep)); for(int i=1;i<=n;i++) root[i]=i; for(int i=1;i<=n;i++) scanf("%d%d",&num[i].x,&num[i].y); while(scanf("%s",c)!=EOF) { if(c[0]=='O') { scanf("%d",&a); rep[a]=1; for(int i=1;i<=n;i++) if(distance(num[i],num[a])<=d&&rep[i]) merge(a,i); //这里的距离因为看了样例,然后固化了,写成小于1.0,然后又WA了N次 } else { scanf("%d%d",&a,&b); if(find(a)==find(b)) printf("SUCCESS\n"); else printf("FAIL\n"); //这里一开始写成FALL,WA了一次 } } return 0; }
总结:
1.一开始定义输入字符char c,输入的时候scanf(“%c”,&c)出现了错误,输入scanf(“% c”,&c)就不会出现错误了,也就是输入格式前面加个空格;
2.FAIL一开始打成FALL,低级错误;
3.距离是小于d不是小于样例给的1,又是低级错误;
4.一开始想的是:当O的时候登记rep为修好状态,当S的时候再一个个匹配合并,然后用了一个二重循环,先找到一个已经修好的,然后以这个修好的为基准再循环一层来找下一个修好的,然后匹配。这样无疑会TLE的。改进后就是每输入一次O就更新一次连通集合,没输入一次S就判断一次两者是否属于一个集合就可以了。
5.一开始还想过用一个二维数组来保存i到j是否能连上的状态,其实不需要,改进后只需要用个rep数组登记就好。
相关推荐
1. **`iwconfig`**:这是Linux内核自带的一个命令行工具,主要用于查看和配置无线网络接口的基本信息,如ESSID(服务集标识符,即无线网络的名称)、频道、速率、加密状态等。你可以通过`iwconfig interface_name`...
此问题可以通过构建并查集,将可堆叠的立方体视为同一集合来解决。 **案例分析:Pku1733—Parity game** 题目描述:给定一个棋盘上的初始状态,玩家轮流移动棋子,目标是使得所有棋子在同一行或同一列。此问题可以...
5. **WLAN(Wireless Local Area Network)**:即Wi-Fi,是基于IEEE 802.11系列标准的局域网无线通信技术,常见频段有2.4GHz和5GHz,用于家庭、办公室和公共热点的无线互联网连接。 6. **BLUETOOTH**:短距离无线...
这些类可以帮助开发者枚举当前可用的无线网络,并获取每个网络的相关信息,如SSID(服务集标识符,即Wi-Fi网络的名称)、信号强度、加密状态等。 描述中没有提供额外的具体技术细节,但我们可以推测这个项目可能...
蓝牙是一种无线个人区域网路(Wireless Personal Area Network, WPAN)技术标准,旨在短距离内实现设备间的无线通信。它通过定义一组协议来支持语音和数据传输,并广泛应用于手机、笔记本电脑、音频播放器等设备中。...
- **定义**:IXP是一种特殊的网络节点,它的主要功能是让两个网络能够直接相连并交换数据包,无需通过第三方网络转发。 - **优势**:提高数据交换速度,降低网络延迟,减少成本。 - **案例**:许多大城市的IXP中心...
20. WLAN连接方式:WLAN(Wireless Local Area Network)是无线连接。正确答案是B。 21. 拨号上网设备:Modem(调制解调器)用于拨号接入Internet。正确答案是C。 22. 传输介质错误率:光缆是错误率最低的传输介质...
在Linux系统中,管理无线网络连接时,`iwconfig`是一个非常重要的命令行工具,它属于Linux Wireless Extensions(LWE)的一部分。LWE提供了一套完整的框架,包括内核支持、用户空间配置工具和驱动接口,用于管理和...
1. **WLAN基础概念**:WLAN,全称Wireless Local Area Network,是一种使用无线电波或红外线传输数据,实现设备间通信的局域网。WLAN的核心组成部分是无线接入点(Access Point, AP),它允许无线设备连接到有线网络...
3. 网络通信类(Network Class):负责与服务器的通信,发送请求并接收响应。 在源代码中,你可能会看到`Displayable`接口的使用,它是所有显示对象的基类;`Canvas`类用于自定义图形界面;`Form`类用于创建包含多...
随着技术的发展,无线局域网(Wireless Local Area Network,WLAN)也逐渐普及,使用无线电波作为传输介质,提供更灵活的网络部署方案。每种传输媒体都有其适用场景和优缺点,例如双绞线成本低廉,安装方便,但传输...
Wireless revolution描述了无线技术的发展,如Wi-Fi和蓝牙。Worksheet file在电子表格软件中,指的是包含数据的工作表。 在更高级的概念中,analytical graph用于数据可视化,帮助分析数据。Content提示向导...
- **WLAN(Wireless Local Area Network)**:无线局域网,是一种利用无线电波进行数据传输的局域网络。 #### 三、AP及热点验收测试 - **3.1 AP及热点验收测试项目** - **安装工艺检查**:包括AP设备安装、天线...
下载是指从远程服务器获取数据或文件,并将其保存到本地计算机的过程。 #### DVD(数字化通用磁盘) DVD是一种高密度光盘存储介质,用于存储高质量的视频、音频和数据文件。 #### Database(数据库) 数据库是一...
1.4.1 并查集.............................................................................................................50 Pku1703--Find them, Catch them.................................................
它可以有效地帮助用户理解复杂的数据集,并从中提取有用的信息。 **5. Animations 动画** 在计算机科学领域,动画是指一系列连续的画面或图像快速切换而形成的视觉效果。动画广泛应用于游戏开发、影视制作以及用户...
由于电子健康应用对无处不在计算的日益增长的需求、电子... 基于真实和合成数据集的性能分析和实验表明,新架构及其底层提出的算法优化了实时查询处理,以实现最小的能耗和查询延迟,并提供安全和强大的存储基础设施。
#### 十二、无线协议(Wireless Protocols) **知识点:** - **基础知识(Basics):** - 无线协议是无线网络中节点之间通信的标准。 - 这些协议必须考虑无线网络特有的挑战,如信号干扰和能量限制。 - 了解无线协议...