Wireless Network(百练,POJ)

题目链接:

http://bailian.openjudge.cn/tm2019/F/

2236 -- Wireless Network

题面描述:

思路:

这题开了10s,所以可以暴力点,每次修复一个点,就将该点相连的那些边建出来,总的时间复杂度为: O(nm)。关键在于如何判定两个点是否是连通的。

刚开始我直接暴力DFS,发现T了,可能是用了DFS之后导致整个题的常数有点大。

另外一种高效地判别连通性的做法是并查集,我们可以在每次添加点的时候还是O(n)的建边,但是在查询连通性的时候就直接O(1)的并查集查询了。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
#define ll long long
using namespace std;
const int N=1010;
struct node{int x;int y;
};
node a[N];
int n,d;
vector<int> edge[N];
int valid[N];
int vis[N];
char op[10];
int fa[N];
void init(){memset(valid,0,sizeof(valid));for(int i=1;i<=n;i++) {edge[i].clear();fa[i]=i;}
}int finds(int x){if(x==fa[x]) return x;return fa[x]=finds(fa[x]);
}void unions(int x,int y){int u=finds(x);int v=finds(y);if(u==v) return ;fa[u]=v;return ;
}int check(int aa,int bb){ll res=1ll*d*d;ll tmp=1ll*(a[aa].x-a[bb].x)*(a[aa].x-a[bb].x)+1ll*(a[aa].y-a[bb].y)*(a[aa].y-a[bb].y);if(tmp<=res) return 1;return 0;
}void build(int x){valid[x]=1;for(int i=1;i<=n;i++){if(!valid[i]) continue;if(check(x,i)){unions(i,x);}}return ;
}int cha(int x,int y){int u=finds(x);int v=finds(y);if(u==v) return 1;return 0;}int main(void){scanf("%d%d",&n,&d);init();for(int i=1;i<=n;i++){scanf("%d%d",&a[i].x,&a[i].y);}while(scanf("%s",op)!=-1){if(op[0]=='O'){int x;scanf("%d",&x);build(x);}else{int x,y;scanf("%d%d",&x,&y);int flag=cha(x,y);if(flag) printf("SUCCESS\n");else printf("FAIL\n");}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/852693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新能源汽车不安全?新能源汽车测试之方案篇——充电桩综合测试

背景 随着全球对气候变化和环境污染问题的日益加剧&#xff0c;新能源汽车作为一种环保、节能的交通工具备受关注。其发展背景主要源于对环境问题的关注以及对传统燃油汽车依赖的减少。新能源汽车的出现&#xff0c;带来了减少尾气排放、节能减排、保护环境等多方面的优点&…

【STM32】uc/OS-III多任务程序

目录 一、背景介绍二、UCOS-III简单介绍&#xff08;一&#xff09;源码&#xff08;二&#xff09;功能 三、实验&#xff08;一&#xff09;基于STM32CubeMX建立工程1、创建项目2、配置项目 &#xff08;二&#xff09;实现 四、总结五、参考 一、背景介绍 学习嵌入式实时操…

PHP/JS质量工具,安全工具总结

项目质量保证需要更多的经验和工具&#xff0c;我们利用工具改善项目质量&#xff0c;提升个人编码技巧和丰富经验 项目安全也需要重点关注&#xff0c;扫描的安全性问题是帮助项目质量和个人能力提升的助力 可点击对应的链接查看相关工具的介绍及简单使用方法 PHP质量工具总结…

《精通ChatGPT:从入门到大师的Prompt指南》第7章:创意写作

第7章&#xff1a;创意写作 7.1 角色设定 角色设定是创意写作中最关键的环节之一。成功的角色设定能够让读者对故事产生共鸣&#xff0c;使故事更加生动有趣。角色不仅仅是情节发展的载体&#xff0c;更是读者情感的投射对象。因此&#xff0c;深入了解如何设定一个生动而有深…

【React】json-server

1.安装到开发环境 npm install json-server -D2.在根目录下下&#xff0c;新建db.json文件 {"list": [{"rpid": 3,"user": {"uid": "13258165","avatar": "http://toutiao.itheima.net/resources/images/9…

Linux之管道符

Linux之管道符 | 通过【 命令1 | 命令2 】将命令1输出的结果&#xff0c;通过命令2进一步处理 【命令1】 ——> 【管道】——> 【命令2】 例子 [rootlocalhost opt]# ls -a /etc/ | grep ^pro --展示/etc/下所有文件|文件以pro开头 profile profile.d pr…

Go Module详解

文章目录 基本介绍相关环境变量Go Module的使用初始化项目&#xff08;go mod init&#xff09;管理依赖项&#xff08;go mod edit&#xff09;获取依赖项&#xff08;go mod download&#xff09;整理依赖项&#xff08;go mod tidy&#xff09;导入vendor目录&#xff08;go…

【DevOps】Ubuntu基本使用教程

目录 引言 Ubuntu简介 安装Ubuntu 准备工作 创建启动盘 安装过程 桌面环境 基本操作 定制桌面 文件管理 文件操作 文件权限 软件管理 安装软件 更新软件 系统设置 用户账户 网络设置 电源管理 命令行操作 常用命令 管理权限 安全与维护 系统更新 备份…

vue前段处理时间格式,设置开始时间为00:00:00,设置结束时间为23:59:59

在Vue开发中&#xff0c;要在前端控制日期时间选择器的时间范围&#xff0c;可以通过以下方式实现&#xff1a; 使用beforeDestroy生命周期钩子函数来处理时间范围&#xff1a; 在Vue组件中&#xff0c;可以监听日期时间选择器的变化&#xff0c;在选择开始日期时&#xff0c;自…

傲星一个在线工具箱源码附搭建教程

傲星工具箱源码是一款功能强大的在线工具箱程序&#xff0c;您可以通过安装扩展来增强其功能。同时&#xff0c;该程序还提供了插件模板的功能&#xff0c;让您可以将其作为网页导航使用。 1.PHP版本需不低于7.2.5。 2.Mysql版本需不低于5.7。 3.需要安装fileinfo扩展。 4.…

蓝牙音频解码芯片TD5163介绍,支持红外遥控—拓达半导体

蓝牙芯片TD5163A是一颗支持红外遥控、FM功能和IIS音频输出的蓝牙音频解码芯片&#xff0c;此颗芯片的亮点在于同时支持真立体声&单声道、TWS功能、PWM、音乐频谱和串口AT指令控制等功能&#xff0c;芯片在支持蓝牙无损音乐播放的同时&#xff0c;还支持简单明了的串口发送A…

idea有这个类却报红,无法用快捷键找到

idea有这个类却报红&#xff0c;无法用快捷键找到&#xff0c;但是项目启动却没有任何问题&#xff0c;严重影响到了开发效率&#xff0c;关idea 重新打开没有用。 找了一圈&#xff0c;办法如下&#xff1a; 1、点击左上角的 File—>Invalidate Caches/Restar 2、点击 In…

Apache Doris 基础 -- 数据表设计(分层存储)

1、应用场景 未来一个重要的用例是类似于ES日志存储&#xff0c;其中日志场景中的数据是根据日期分割的。许多数据都是查询不频繁的冷数据&#xff0c;因此需要降低此类数据的存储成本。考虑到节约成本: 来自不同厂商的常规云磁盘的定价比对象存储更昂贵。Doris 集群实际在线…

企业如何禁止员工电脑插u盘?禁用U盘的七个方法

禁止电脑插入U盘其实很简单&#xff0c;有多种方法&#xff0c;有适合个人的有适合企业的&#xff0c;今天一次性给你介绍清楚。 1.禁用USB端口&#xff1a; 通过组策略&#xff1a;在Windows域环境中&#xff0c;管理员可以使用组策略来禁用所有或部分USB端口。这可以通过编…

Python俄罗斯方块可操纵卷积分类 | 稀疏辨识算法 | 微分方程神经求解器

&#x1f3af;要点 &#x1f3af;组卷积网络&#xff1a;实现循环组&#xff0c;可视化组动作&#xff0c;实现提升卷积核&#xff0c;MNIST 训练数据集训练组卷积网络的泛化能力 | &#x1f3af;可操控卷积网络&#xff1a;紧群的表征与调和分析&#xff0c;代码验证常规表征…

[Linux] Screen的简单使用与中途退出保持运行

创建一个新的screen&#xff1a; screen -S test 查看刚才创建的screen&#xff1a; screen -ls中途退出screen: 用ctrlad退出screen&#xff0c;然后再掉cmd窗口了重新打开screen&#xff1a; screen -r 15659.test使用删除命令&#xff1a; screen -X -S 16283.you quit 另附…

node.js学习

node.js学习实操及笔记 温故node.js&#xff0c;node.js学习实操过程及笔记~ node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记 为什么学node.js 可以让别人访问我们编写的网页为后续的框架学习打下基础&#xff0c;三大框架vue react angular离不开node.js …

云手机的 Socks5 网络配置指南

当你在使用云手机之前&#xff0c;了解和正确配置 Socks5 网络代理是提升其性能和功能的关键一步&#xff1b; 直白点来说利用 Socks5 代理进行网络配置&#xff0c;可以带来诸多优势。 什么是socks5&#xff1f; Socks5 是一种重要的网络代理协议&#xff0c;主要功能在于它…

计算机哈佛架构、冯·诺依曼架构对比

哈佛架构和冯诺依曼架构是两种不同的计算机系统架构&#xff0c;它们在存储器组织方式上有着显著的区别。下面是它们的原理、优缺点的对比以及一些常见的 MCU 采用的架构&#xff1a; 哈佛架构&#xff1a; 原理&#xff1a;哈佛架构将指令存储器&#xff08;程序存储器&#x…

在Linux系统中,使用OpenSSL生成CSR(Certificate Signing Request),并同时生成PEM格式的公钥和私钥的命令如下:

在Linux系统中&#xff0c;使用OpenSSL生成CSR&#xff08;Certificate Signing Request&#xff09;&#xff0c;并同时生成PEM格式的公钥和私钥的命令如下&#xff1a; 生成私钥 openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048 生成CSR …