代码随想录算法训练营DAY60|并查集理论基础、寻找存在的路径

并查集理论基础

  • 并查集主要有两个功能:
    • 将两个元素添加到一个集合中。
    • 判断两个元素在不在同一个集合
  • 复杂度分析
    • 空间复杂度: O(n) ,申请一个father数组。
    • 路径压缩后的并查集时间复杂度在O(logn)与O(1)之间,且随着查询或者合并操作的增加,时间复杂度会越来越趋于O(1)。
    • 在第一次查询的时候,相当于是n叉树上从叶子节点到根节点的查询过程,时间复杂度是logn,但路径压缩后,后面的查询操作都是O(1),而 join 函数 和 isSame函数 里涉及的查询操作也是一样的过程。

寻找存在的路径

def init():for i in range(n):father[i]=idef find(x):return x if x==father[x] else find(father[x])def join(x,y):x=find(x)y=find(y)if x==y: returnfather[x]=ydef isSame(x,y):x=find(x)y=find(y)return True if x==y else Falseif __name__=='__main__':n,m = map(int, input().split())father = [0]*ninit()for _ in range(m):a,b = map(int, input().split())join(a-1,b-1)s,d = map(int,input().split())if isSame(s-1,d-1):print(1)else:print(0)

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

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

相关文章

大数据------JavaWeb------VueElement(完整知识点汇总)

Vue 定义 Vue是一套前端框架,可以免除原生JavaScript中的DOM操作,简化书写 之前所学的MyBatis框架是用来简化JDBC代码编写的;而Vue是前端框架,用来简化JavaScript代码编写的 在Axios与JSON综合案例的添加中有大量的DOM操作&#…

Ubuntu 22.04.4 LTS (linux) 安装 Auditd 安全审计

1 安装auditd sudo apt update sudo apt-get install auditd 2 修改配置 #sudo vim /etc/audit/auditd.conf #日志文件位置 log_file /var/log/audit/audit.log #日志文件大小(Mb) max_log_file 8 #日志文件数量 num_logs 53 启动服务 sudo systemctl restart aud…

【密码学】数字签名

一、数字签名的基本概念 数字签名是一种用于验证电子文档完整性和身份认证的密码学技术。它通过使用公钥加密体系中的私钥对文档的一部分(通常是文档的摘要)进行加密,从而创建一个“签名”。这个签名可以附在文档上,或作为一个单独…

vue3实现vuedraggable实现拖拽到垃圾桶图标位置进行删除

当使用Vue 3和vuedraggable库时,你可以按照以下方式实现拖拽到垃圾桶图标位置进行删除的功能: 首先,确保你已经安装了vuedraggable库。如果没有安装,可以通过以下命令进行安装: vuedraggable 和vue-draggable-plus使…

力扣636.函数的独占时间

力扣636.函数的独占时间 用一个对组栈存每个start数据,first为编号,second为开始时间 start时:若栈为空 直接入栈 若不为空 处理前一段已独占的时间 end时:将自己的独占时间处理了 若栈非空 将栈顶元素的开始时间更新为当前时间1因…

如何将HEVC格式的视频转换为无损、未压缩的MP4格式视频?

在和大家分享视频格式转换之前,先跟大家分享一下HEVC格式的视频到底是什么文件?压缩原理是什么?了解了它的本质之后,我们就可以知道如何保证视频高清无损了。 如何将HEVC格式的视频转换为无损、未压缩的MP4格式视频? …

【Flask从入门到精通:第二课:flask加载项目配置的二种方式、路由的基本定义和终端运行】

flask加载项目配置的二种方式 # 1. 导入flask核心类 from flask import Flask# 2. 初始化web应用程序的实例对象 app Flask(__name__)"""第一种:flask项目加载站点配置的方式""" # app.config["配置项"] 配置项值 # app…

逐步实践复现 SELF-RAG

SELF-RAG 简介 SELF-RAG(Self-Reflective Retrieval-Augmented Generation)是一种检索增强生成(RAG)的框架,它通过自我反思学习检索、生成和批判,以提高大型语言模型(LLM)的质量和真…

通用业务指标管理系统设计

设计一个通用业务指标管理系统,旨在帮助企业全面监控和管理关键业绩指标(KPIs),以驱动决策制定和业务优化。以下是一个综合性的设计方案,涵盖核心功能模块、技术架构、以及用户体验设计要点: 1. 核心功能模块 目标设定与分解 战…

「C++系列」一篇文章说透【存储类】

文章目录 一、C 存储类1. 类的定义2. 对象的创建3. 对象在内存中的布局4. 对象的存储位置 二、auto 存储类1. auto的基本用法2. auto与存储类的关系1) 自动存储类(最常见的)2) 静态存储类3) 动态存储类(通过new) 三、register 存储…

C标准库读写文件

函数介绍 库变量 变量描述size_t无符号整数类型,是sizeof关键字的结果,表示对象大小FILE文件流类型,适合存储文件流信息的对象类型 库宏 宏描述NULL空指针常量EOF表示已经到达文件结束的负整数stderr、stdin、stdout指向FILE类型的指针&a…

react 中useState 使用Immer 简化数据更改操作数组、对象

如果你不想改变你的状态结构,你可能更喜欢嵌套传播的捷径。Immer 是一个流行的库,它允许你使用方便但可变的语法进行编写,并负责为你生成副本。使用 Immer,你编写的代码看起来就像你是 “打破规则” 并且正在改变一个对象&#xf…

js【详解】声明常量和变量 const let var

声明常量 const 声明常量时,必须赋值!声明的常量赋值后,不能修改(运行时会报错)ES6 新增语法有块级作用域 const webName EC编程俱乐部常量不可变的本质 常量赋值值类型数据后,不能再赋其他值&#xff0…

【数智化案例展】吉林省消防救援总队——基于大语言模型的119智慧助手

‍ 嘉诚信息案例 本项目案例由嘉诚信息投递并参与数据猿与上海大数据联盟联合推出的《2024中国数智化转型升级创新服务企业》榜单/奖项评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着信息时代的迅猛发展,消防人员正面临前所未有的知识爆炸挑战。为了高…

功能丰富的开源协作式知识库系统outline

语雀飞书平替快速协作式的团队知识库提供一个美观、易于使用的界面允许团队成员以实时方式协作编辑文档支持Markdown-i68爱六八,链接你我他:https://i68.ltd项目仓库:GitHub - outline/outline: The fastest knowledge base for growing teams. Beautifu…

day30--56. 合并区间+ 738.单调递增的数字

一、56. 合并区间 题目链接:https://leetcode.cn/problems/merge-intervals/ 文章讲解:https://programmercarl.com/0056.%E5%90%88%E5%B9%B6%E5%8C%BA%E9%97%B4.html 视频讲解:https://www.bilibili.com/video/BV1wx4y157nD 1.1 初见思路 …

数据库第四次练习

数据准备 创建两张表:部门(dept)和员工(emp),并插入数据,代码如下 create table dept( dept_id int primary key auto_increment comment 部门编号, dept_name char(20) comment 部门名称 ); in…

SAP PS学习笔记02 - 网络,活动,PS文本,PS文书(凭证),里程碑

上一章讲了PS 的概要,以及创建Project,创建WBS。 SAP PS学习笔记01 - PS概述,创建Project和WBS-CSDN博客 本章继续讲PS的后续内容。包括下面的概念和基本操作,以及一些Customize: - 网络(Network&#xf…

力扣-回溯法

何为回溯法? 在搜索到某一节点的时候,如果我们发现目前的节点(及其子节点)并不是需求目标时,我们回退到原来的节点继续搜索,并且把在目前节点修改的状态还原。 记住两个小诀窍,一是按引用传状态…

copy 和 mutableCopy 有点乱

对 string literal (字符串字面量) 执行 copy 要打印指针指向对象的地址和指针本身的地址,可以使用 %p 格式符来输出指针地址。以下代码,展示了 originalString 和 copiedString 的指针地址和指向对象的地址: NSString *originalString &q…