链接: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 (并查集)的更多相关文章

  1. POJ 2236 Wireless Network (并查集)

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 18066   Accepted: 761 ...

  2. POJ 2236 Wireless Network [并查集+几何坐标 ]

    An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wi ...

  3. POJ 2236 Wireless Network ||POJ 1703 Find them, Catch them 并查集

    POJ 2236 Wireless Network http://poj.org/problem?id=2236 题目大意: 给你N台损坏的电脑坐标,这些电脑只能与不超过距离d的电脑通信,但如果x和y ...

  4. [并查集] POJ 2236 Wireless Network

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 25022   Accepted: 103 ...

  5. poj 2236:Wireless Network(并查集,提高题)

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 16065   Accepted: 677 ...

  6. POJ 2236 Wireless Network(并查集)

    传送门  Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 24513   Accepted ...

  7. POJ 2236 Wireless Network (并查集)

    Wireless Network 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/A Description An earthqu ...

  8. [ An Ac a Day ^_^ ] [kuangbin带你飞]专题五 并查集 POJ 2236 Wireless Network

    题意: 一次地震震坏了所有网点 现在开始修复它们 有N个点 距离为d的网点可以进行通信 O p   代表p点已经修复 S p q 代表询问p q之间是否能够通信 思路: 基础并查集 每次修复一个点重新 ...

  9. poj 2236 Wireless Network 【并查集】

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 16832   Accepted: 706 ...

随机推荐

  1. NPOI DataTable导出excel

    /// <summary> /// DataTable导出到Excel文件 /// </summary> /// <param name="dtSource&q ...

  2. [02] mybatis-config.xml 全局配置文件解析

    本篇会摘录mybatis全局配置文件中比较常见常用的一些配置进行说明,其实官方文档已经写得足够清晰了(关键是还有中文版完全不慌),此处记录重要还是作为个人的巩固记录. 1.properties 在全局 ...

  3. CentOS7.2调整Mysql数据库最大连接数

    mysql数据库最大连接数=max_connections+11:root连接,用于管理员连接数据库进行维护操作查看最大连接数:show variables like 'max_connections ...

  4. LiveCharts文档-4基本绘图-1基本线条图

    原文:LiveCharts文档-4基本绘图-1基本线条图 4基本绘图-1基本线条图 using System; using System.Windows.Forms; using System.Win ...

  5. Terraform:简介

    在 DevOps 实践中,基础设施即代码如何落地是一个绕不开的话题.像 Chef,Puppet 等成熟的配置管理工具,都能够满足一定程度的需求,但有没有更友好的工具能够满足我们绝大多数的需求?笔者认为 ...

  6. Ubuntu16.04下使用rdesktop命令远程连接windows机器

    前段时间在本机安装了ubuntu16.04桌面版,后来需要远程连接一台win10系统的跳转机,下面介绍使用rdesktop命令远程连接windows机器的操作记录:1)首先安装rdesktop工具 k ...

  7. 分布式监控系统Zabbix-3.0.3-完整安装记录(1)

    分布式监控系统Zabbix-3.0.3的安装记录 环境说明zabbix-server:192.168.1.30     #zabbix的服务端(若要监控本机,则需要配置本机的Zabbix agent, ...

  8. Python-集合-17

    ''' 集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复. {} ''' set1 = set({1,2,3}) # set2 = {1,2,3,[2,3],{'name':'a ...

  9. (第十二周)final预发布视频

    项目名:食物链教学工具 组名:奋斗吧兄弟 组长:黄兴 组员:李俞寰.杜桥.栾骄阳.王东涵 Final阶段视频发布 平台:优酷 链接:http://v.youku.com/v_show/id_XMTg0 ...

  10. Linux内核分析第四章 读书笔记

    Linux内核分析第四章 读书笔记 第一部分--进程调度 进程调度:操作系统规定下的进程选取模式 面临问题:多任务选择问题 多任务操作系统就是能同时并发地交互执行多个进程的操作系统,在单处理器机器上这 ...