poj 2236 Wireless Network (并查集)
链接:http://poj.org/problem?id=2236
题意:
有一个计算机网络,n台计算机全部坏了,给你两种操作:
1.O x 修复第x台计算机
2.S x,y 判断两台计算机是否联通
联通的条件: 两台都修复好了,求距离小于d
思路:
数据很小,我们可以没修复一台就直接枚举已经修复的计算机找到距离小于d的,放到一个并查集里,查询的话直接查询是否再同一个并查集里就好了
实现代码:
//while(scanf("\n%c", &ope) != EOF) #include<iostream>
#include<cstdio>
using namespace std;
const int M = 1e4+;
struct node{
int x,y,id;
}a[M],b[M];
int n,d;
int f[M];
int find(int x){
if(x == f[x]) return x;
return f[x] = find(f[x]);
} void mix(int x,int y){
int fx = find(x);
int fy = find(y);
if(fx != fy) f[fx] = fy;
} bool check(node a,node b){
double num = (a.x - b.x)*(a.x - b.x)+(a.y - b.y)*(a.y - b.y);
double num1 = d*d*1.0;
if(num <= num1) return ;
return ;
} int main()
{
char op;int k,l,r,cnt = ;
scanf("%d%d",&n,&d);
for(int i = ;i <= n;i ++)
scanf("%d%d",&a[i].x,&a[i].y),a[i].id = i;
for(int i = ;i <= n;i ++)
b[i].x = ,b[i].y=,b[i].id = ,f[i]= i;
while(scanf("\n%c", &op) != EOF){
if(op == 'O'){
scanf("%d",&k);
for(int i = ;i <= cnt;i ++)
if(check(b[i],a[k]))
mix(b[i].id,k); b[++cnt].x = a[k].x;b[cnt].y = a[k].y,b[cnt].id = a[k].id;
}
else{
scanf("%d%d",&l,&r);
if(find(l) == find(r)) printf("SUCCESS\n");
else printf("FAIL\n");
}
}
}
poj 2236 Wireless Network (并查集)的更多相关文章
- POJ 2236 Wireless Network (并查集)
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 18066 Accepted: 761 ...
- POJ 2236 Wireless Network [并查集+几何坐标 ]
An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wi ...
- POJ 2236 Wireless Network ||POJ 1703 Find them, Catch them 并查集
POJ 2236 Wireless Network http://poj.org/problem?id=2236 题目大意: 给你N台损坏的电脑坐标,这些电脑只能与不超过距离d的电脑通信,但如果x和y ...
- [并查集] POJ 2236 Wireless Network
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 25022 Accepted: 103 ...
- poj 2236:Wireless Network(并查集,提高题)
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 16065 Accepted: 677 ...
- POJ 2236 Wireless Network(并查集)
传送门 Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 24513 Accepted ...
- POJ 2236 Wireless Network (并查集)
Wireless Network 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/A Description An earthqu ...
- [ An Ac a Day ^_^ ] [kuangbin带你飞]专题五 并查集 POJ 2236 Wireless Network
题意: 一次地震震坏了所有网点 现在开始修复它们 有N个点 距离为d的网点可以进行通信 O p 代表p点已经修复 S p q 代表询问p q之间是否能够通信 思路: 基础并查集 每次修复一个点重新 ...
- poj 2236 Wireless Network 【并查集】
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 16832 Accepted: 706 ...
随机推荐
- win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建
win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建 重编译的优点:能够调试的时候看OpenCV的源码. 重编译要得到的东西:Debug版本号和Release版本号 ...
- flask-script&flask-migrate使用
一.简介 Flask-script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell.设置数据库的脚本.cronjobs及其他运行在web应用之外的 ...
- 查看MS Sqlserver文件大小语句
1..查询数据库的数据文件及日志文件的相关信息(包括文件组.当前文件大小.文件最大值.文件增长设置.文件逻辑名.文件路径等) select * from [数据库名].[dbo].[sysfiles] ...
- [Oracle][Metadata]如何查找与某一个功能相关的数据字典名
当Oracel的一个新功能出来的时候,我们可能不知道所有与此功能关联的数据字典名称,那么如何才能得到这些 meta data 的 meta data 呢? 可以通过 dicitonary 来查看: 例 ...
- windows下docker启动.net core mvc随手记
docker基本命令: 查看当前的版本docker--version查看本地所有镜像:docker images查看当前正在运行的所有容器docker ps停止某个容器:docker stop 容器I ...
- jackjson-databind-2.9.3 笔记
问题 客户端请求: {"skip":0,"take":10,"corpName":"","cityCode&q ...
- 【CV】ICCV2015_Learning Temporal Embeddings for Complex Video Analysis
Learning Temporal Embeddings for Complex Video Analysis Note here: it's a review note on novel work ...
- 最新一课 老师指点用Listview适配器
上课前 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android ...
- (Alpha)Let's-版本发布说明
我们的Let’s APP发布了! (下载地址在“下载与安装”部分) Alpha版本功能 Alpha版本是我们发布的第一个版本,所以仅实现了活动实体和用户实体之间的基础联系功能. 基本功能 登录和注册 ...
- 『编程题全队』Beta 阶段冲刺博客三
1.提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID) (1) 昨天已完成的工作 孙志威: 1.添加登录框的功能 2.修改登录框的UI 孙慧君: 1.提醒显示UI设计: 2 ...