POJ 2236 并查集
来源:互联网 发布:js怎么为radio赋值 编辑:程序博客网 时间:2024/05/20 15:40
Time Limit: 10000MS.........
直接暴力查找。。连通的用并查集处理一下就行了
#include "stdio.h"#include "string.h"#include "math.h"#include "stdlib.h"struct comp{double x,y;} point[1010];int n;double d;int hash[1010];double dis[1010][1010];int fa[1010];double make_dis(int a,int b){return sqrt( (point[a].x-point[b].x)*(point[a].x-point[b].x)+(point[a].y-point[b].y)*(point[a].y-point[b].y));}int find(int x){if (x!=fa[x])fa[x]=find(fa[x]);return fa[x];}void repair(int x){int i,a,b;hash[x]=1;for (i=1;i<=n;i++)if (i!=x && hash[i]==1 && dis[x][i]-d<1e-10){a=find(x);b=find(i);if (a!=b)fa[a]=b;}} int main(){int i,x,y,j;char ch;scanf("%d%lf",&n,&d);for (i=1;i<=n;i++)scanf("%lf%lf",&point[i].x,&point[i].y);for (i=1;i<=n;i++)for (j=i;j<=n;j++)if (i==j)dis[i][j]=dis[j][i]=0;else dis[i][j]=dis[j][i]=make_dis(i,j);getchar();memset(hash,0,sizeof(hash));for (i=1;i<=n;i++)fa[i]=i;while (scanf("%c",&ch)!=EOF){if (ch=='O') {scanf("%d",&x);repair(x);}else {scanf("%d%d",&x,&y);if (find(fa[x])==find(fa[y])) printf("SUCCESS\n");else printf("FAIL\n");}getchar();}return 0;}
- POJ 2236 并查集
- poj 2236(并查集)
- POJ-2236 并查集
- POJ 2236 并查集
- poj 2236(并查集)
- poj 2236并查集
- POJ 2236 并查集
- 并查集 POJ 2236
- POJ 2236并查集
- poj 2236并查集
- POJ 2236(并查集)
- Poj 并查集
- poj并查集
- POJ 并查集
- POJ 2236 Wireless Network(并查集)
- POJ 2236 Wireless Network //并查集
- POJ 2236 WIRELESS NETWORK(并查集)
- POJ-2236 wireless network 并查集
- Linux上TCP,UDP以及广播与多播通信(代码大全)
- testng集成spring测试
- UltraEdit中使用正则表达式替换
- 计算机英文专业术语简称及全称
- mysql的用户管理(一)
- POJ 2236 并查集
- Linux脚本执行权限设置
- 定点DSP和浮点DSP差别
- Delphi DLL 入口点分析
- 不接sdk分享到微信,微博等第三方
- Linux中的HZ tick jiffies
- ios Socket使用大全
- OCP-1Z0-053-V13.02-141题
- 简单说说PHP优化那些事