poj 2236 Wireless Network(基础并查集)
2018-02-10 14:59
483 查看
0 1 0 2 0 3 0 4 O 1 O 2 O 4 S 1 4 O 3 S 1 4 Sample OutputFAIL SUCCESS SourcePOJ Monthly,HQM |
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <map>
#define LL long long
#define MAXN 2600;
using namespace std;
struct node
{
int x,y;
}b[1005];
int fa[1005];
int vis[1005];
int n,m;
bool judge(int i,int j)
{
int x1=b[i].x-b[j].x;
int y1=b[i].y-b[j].y;
int d=x1*x1+y1*y1;
if(d<=m*m) return true;
return false;
}
int Find(int x)
{
if(fa[x]==x) return x;
else return fa[x]=Find(fa[x]);
}
void unin(int i,int j)
{
int f1=Find(i);
int f2=Find(j);
if(f1!=f2)
{
fa[f1]=f2;
}
}
int main()
{
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>b[i].x>>b[i].y;
}
for(int i=1;i<=n;i++)
{
fa[i]=i;
}
char c;
int xx,yy;
int cnt=0;
while(cin>>c)
{
if(c=='O')
{
cin>>xx;
vis[cnt++]=xx;
for(int i=0;i<cnt;i++)
{
if(judge(xx,vis[i]))
{
unin(xx,vis[i]);
}
}
}
if(c=='S')
{
cin>>xx>>yy;
if(Find(xx)==Find(yy))
{
cout<<"SUCCESS"<<endl;
}else cout<<"FAIL"<<endl;
}
}
}
相关文章推荐
- poj-2236 Wireless Network &&poj-1611 The Suspects && poj-2524 Ubiquitous Religions (基础并查集)
- poj Wireless Network(基础并查集)
- POJ 2236(并查集)
- poj 2236(并查集)
- poj 2236 Wireless Network(并查集)(有点暴力)
- poj 2236 并查集 计算机网络
- POJ 2236 Wireless Network(带权并查集)
- POJ1611 并查集 基础 比 2524 复杂一些
- POJ 2236 Wireless Network(并查集)
- poj 2236 Wireless Network (并查集)
- poj 2236 Wireless Network(并查集)
- poj Wireless Network(基础并查集)
- POJ_2236(并查集)
- POJ 2236 Wireless Network 简单并查集
- POJ 2236 Wireless Network 几何+并查集
- POJ 2236 WIRELESS NETWORK(并查集)
- 数据结构 并查集 POJ 2236
- poj 2236 并查集
- POJ - 2236-Wireless Network(并查集)
- poj 2236 Wireless Network(并查集模板题)