poj2236 - Wireless Network
来源:互联网 发布:淘宝安装师傅在哪接单 编辑:程序博客网 时间:2024/05/23 17:21
想看更多的解题报告: http://blog.csdn.net/wangjian8006/article/details/7870410
转载请注明出处:http://blog.csdn.net/wangjian8006
题目大意:有n台损坏的电脑,现在会逐渐修复电脑,给你所有电脑的坐标,然后两台电脑能够通信的标准是,距离不超过d或者能够
通过已经修好的电脑到达另一台电脑
对其进行两种可能的操作,O x表示修复第x台,S x y表示判断x y之间能否通信
若能输出SUCCESS,否则输出FALL。
解题思路:两台电脑之间如果可以通信,那么两台电脑都是已经维修过的,并且距离不超过d,用这个条件来使两台电脑所属的集合合并,
这样用并查集来判断2台电脑是否可以通信
/*Memory 204KTime 1141MS*/#include <stdio.h>#include <math.h>#define MAXV 1010typedef struct{int x,y,flag;}POINT;int n;double d;POINT p[MAXV];int sets[MAXV];int find(int x){if(x == sets[x]) return x;int rt = find(sets[x]);return rt;}void Union(int x,int y){int fx = find(x);int fy = find(y);if(fx == fy) return ;sets[fy] = fx;}double dis(int a,int b){return (double)sqrt((p[a].x-p[b].x)*(p[a].x-p[b].x)+(p[a].y-p[b].y)*(p[a].y-p[b].y));}int main(){int i,a,b;char ch[5];scanf("%d %lf\n",&n,&d);for(i = 1;i <= n;i++){scanf("%d %d\n",&p[i].x,&p[i].y);sets[i] = i;p[i].flag = 0;}while(~scanf("%s",ch)){if(ch[0]=='O'){scanf("%d",&a);p[a].flag = 1;for(i = 1;i <= n;i++){if(i!=a && p[i].flag && dis(i,a) <= d){//若刚修好的电脑与另一台已经修好电脑的距离不超过d,那么他们之间就可以通信Union(i,a);}}}else{scanf("%d %d",&a,&b);if(find(a)==find(b)) printf("SUCCESS\n");//属于同一个集合就可以通信else printf("FAIL\n");}}return 0;}
- POJ2236 Wireless Network
- poj2236 - Wireless Network
- poj2236 Wireless Network
- POJ2236 Wireless Network
- POJ2236 Wireless Network
- poj2236 Wireless Network
- POJ2236---Wireless Network
- POJ2236--Wireless Network
- poj2236 Wireless Network
- poj2236 Wireless Network
- POJ2236-Wireless Network
- POJ2236(Wireless Network)
- POJ2236 Wireless Network
- poj2236 Wireless Network
- POJ2236 Wireless Network
- poj2236 Wireless Network
- poj2236 Wireless Network
- POJ2236——Wireless Network
- js函数的几种写法,闭包函数的写法
- 非模态窗口的创建和销毁
- linux+shell编程 笔记 1
- mongodb的安装
- SPI相位跟极性介绍
- poj2236 - Wireless Network
- 杭电1871
- 卡尼萨三角
- 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。
- POJ 1961 Period
- 淘宝网店装修代码使用方法大全
- 第一章,从零开始学Android--搭建Android开发环境
- 整体认知主要依靠周边视觉而非中央视觉
- opencv笔记3:仿射变换