E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
算法笔记——并查集
并查集
&LRUCache
文章目录
并查集
1.概念2.实现LRUCache1.概念2.实现使用标准库实现自主实现
并查集
1.概念
并查集
是一个类似于森林的数据结构,并、查、集指的是多个不相干的集合直接的合并和查找,
并查集
使用于N个集合
爱敲代码的三毛
·
2023-10-02 07:50
数据结构
java
算法
数据结构
算法:动态规划——线性DP(C++)
动态规划——线性DP概述经典的问题1.最大连续子序列和2.最长不下降子序列3.最长公共子序列4.最长回文子串相关习题(持续更新中)博客主要参考书:胡凡《
算法笔记
》概述在我看来动态规划就是将一个问题的最优问题分解为子问题的最优解来获得真正的最优解
Magenta Orange
·
2023-10-01 22:23
算法学习
动态规划
算法
c++
算法笔记
/USACO Guide GOLD金组DP 2. Knapsack to DP
今天学习背包DP(KnapsackDP)是USACOGuide的DP章节中第二点教程Knapsackproblemsgenerallyinvolvefillingalimitedcontainerwithasubsetofitemswherewewanttocountoroptimizesomequantityassociatedwiththeitems.Almosteverytime,youca
GeekAlice
·
2023-10-01 21:25
算法
算法
c++
经验分享
学习
Acwing 836. 合并集合
Acwing836.合并集合题目描述思路讲解代码展示题目描述思路讲解
并查集
:代码短,思路精巧,面试常见。近乎O(1)的时间复杂度。
BH04250909
·
2023-10-01 18:57
C++刷题
acwing
算法
C++
数据结构
数据结构——
并查集
并查集
是一种数据结构,是树的一种应用,用于处理一些不交集(一系列没有重复元素的集合)的合并以及查询问题。
并查集
支持如下操作:查询:查询某个元素属于哪个集合,通常是返回集合内的一个“代表元素”。
七个披萨
·
2023-10-01 17:59
数据结构和算法
数据结构
java
数据结构之
并查集
在此之前我们需要思考:
并查集
是解决什么问题的,如何应用?
并查集
解决的是连通性(无向图联通分量)和传递性(家谱关系)问题,并且可以动态的维护。
litian355
·
2023-10-01 17:59
数据结构
数据结构
图论
散列表
数据结构(八):
并查集
详解 (多图+动图)
目录一、什么是
并查集
二、
并查集
的存储结构三、
并查集
的基本操作(一)初始化(二)Find操作(三)Union操作四、
并查集
的优化(一)Union操作优化(小树并入大树)(二)Find操作优化(压缩路径)一
ReadyGo!!!
·
2023-10-01 17:29
数据结构
数据结构
c++
ACM-数据结构-
并查集
ACM竞赛中,
并查集
(DisjointSets)这个数据结构经常使用。顾名思义,
并查集
即表示集合,并且支持快速查找、合并操作。
并查集
如何表示一个集合?它借助树的思想,将一个集合看成一棵有根树。
潜水的疯
·
2023-10-01 17:29
ACM-专题-数据结构
acm
算法提高--数据结构--
并查集
例题(1)
算法提高–数据结构–
并查集
例题–格子游戏题目描述:Bob和Alice玩游戏,两人分别在一个方格纸上延边画线,当画出封闭矩形时结束游戏。问什么时候结束游戏。
炎心
·
2023-10-01 17:58
数据结构
数据结构
数据结构——图解
并查集
(合并树)
什么是
并查集
并查集
,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。
馒头老爸
·
2023-10-01 17:26
数据结构
数据结构
并查集
合并树
数据结构--
并查集
一、
并查集
的概念
并查集
是一种树型的数据结构,用于处理一些不相交集合(disjointsets)的合并及查询问题。常常在使用中以森林来表示。最裸
并查集
:合并元素a和元素b所在的集合。
小凡学编程
·
2023-10-01 17:55
【信奥赛之路
2】--
算法基础
数据结构
c++
算法
青少年编程
一种特别的树形结构 |
并查集
并查集
主要解决连接问题
并查集
操作:find(i)查找父亲结点isConnected(p,q)查询是否相连,返回boolunionElements(p,q)合并两个结点普通版本:无路径压缩,无优化classUnionFind
青春猪头少年_
·
2023-10-01 16:37
扩散c++(floyd和Kruskal+
并查集
)
扩散题目描述一个点每过一个单位时间就会向四个方向扩散一个距离,如图。两个点a、b连通,记作e(a,b),当且仅当a、b的扩散区域有公共部分。连通块的定义是块内的任意两个点u、v都必定存在路径e(u,a0),e(a0,a1),…,e(ak,v)。给定平面上的n给点,问最早什么时刻它们形成一个连通块。输入格式第一行一个数n,以下n行,每行一个点坐标。【数据规模】对于20%的数据,满足1≤N≤5;1≤X
renxvqing0522
·
2023-10-01 15:15
c++
算法
开发语言
并查集
---- 扩展域
并查集
判二分图 + 循环模拟字典树 The 2020 ICPC Asia Macau Regional Contest C. Club Assignment (详解)
题目链接题目大意:有n个数,现在要把他们拆分成两个集合,假设S为集合,有如下定义:f(S)={min(x⊕y)∣x,y∈S,and x!=y}f(S)=\{min(x\oplusy)|x,y\inS,and\;x!=y\}f(S)={min(x⊕y)∣x,y∈S,andx!=y}将n个数拆分为两个集合A,B,要求最大化min(f(A),f(B))min(f(A),f(B))min(f(A),f(
黑夜和白天
·
2023-10-01 09:14
#
并查集
#
trie树
c语言
图论
算法
数据结构 图
并查集
遍历方法 最短路径算法 最小生成树算法 简易代码实现
文章目录前言
并查集
图遍历方法广度优先遍历深度优先遍历最小生成树算法Kruskal算法Prim算法最短路径算法Dijkstra算法BellmanFord算法FloydWarshall算法全部代码链接前言图是真的难
梦 梦见木
·
2023-10-01 07:42
算法
数据结构
图
并查集
LeetCode -721 账户合并
MapunionMap=newHashMap();Map>muMap=newHashMap>();//每个邮箱地址对应的用户publicList>accountsMerge(List>accounts){//初始化
并查集
三岁就很萌@D
·
2023-10-01 06:05
leetcode
leetcode
算法
图论
并查集
算法(图论)
代码:classUnionFind{intparent[];publicUnionFind(intn){parent=newint[n];for(inti=0;i
从月亮走向月亮7
·
2023-10-01 06:05
算法
图论
java
图论27(Leetcode721账户合并)
代码:写了一个超时版本又学了
并查集
超时版本:classSolution{publicList>accountsMerge(List>accounts){List>newAcc=newArrayListisArrive
从月亮走向月亮7
·
2023-10-01 06:03
图论
并查集
及其优化
1.
并查集
#defineSIZE100intUFSets[SIZE];voidInitial(intS[]){for(inti=0;i=0)x=S[x];returnx;}voidUnion(intS[
平人的进步日常
·
2023-10-01 00:05
数据结构
数据结构
【浮*光】 #noip总复习# hss_2018noip_rp++
线段树复习题https://www.luogu.org/problemnew/show/P4041√最短路+dp复习题https://www.luogu.org/problemnew/show/P1772√
并查集
复习题
flora715_hss
·
2023-10-01 00:25
知识点
C++
noip考前祭
【
算法笔记
】散列表(哈希表 Hash table)的简单实践
今天用go语言简单的写了一下散列表(Hashtable)的方法。为了以后方便查看,当做笔记整理了一下~~1.散列表(Hashtable)我们先看看维基百科里是怎么解释的。根据键(Key)而直接访问在内存储存位置的数据结构。也就是说,它通过计算出一个键值的函数,将所需查询的数据映射到表中一个位置来让人访问,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。看看下图:图片备用地址l
李明燮
·
2023-09-30 22:17
Acwing.240 食物链(
并查集
)
题目动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B,B吃C,C吃A。现有N个动物,以1–N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是"1×Y”,表示X和Y是同类。第二种说法是"“2×Y”,表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有
iAkuya
·
2023-09-30 21:46
java算法实录
算法
算法笔记
C++中const和auto的那些事 HERODING的算法之路
C++中const和auto的那些事前言1.const1.1const修饰普通类型的变量1.2const修饰指针变量1.2.1常量指针1.2.2指针常量1.2.3指向常量的常指针1.2.4三者区别2.auto2.1auto的用法2.2auto的注意事项3.const与auto4.总结前言最近做题在暴力的时候发现了一个问题,就是在一些数据量很大的时候(游离于内存的超出范围),如果是constauto
HERODING77
·
2023-09-30 21:05
笔记
c++
算法
开发语言
程序设计
算法笔记
KMP算法 HERODING的算法之路
前言使用暴力算法进行的字符串匹配操作往往不够高效,一般的时间效率为O(m*n),而KMP算法可以优化到O(m+n),这究竟怎么做到的呢?观察暴力匹配的方法,我们可以注意到匹配的指针会不断回退,这就导致了许多不必要的重复操作,而KMP在主字符串中指针不会回退,这就是高效所在之处。当然,一般情况下,普通模式匹配的实际执行时间复杂度近似O(m+n),因此至今仍被采用。算法介绍KMP算法的核心,是一个被称
HERODING77
·
2023-09-30 21:34
笔记
字符串
算法
c++
kmp
数据结构
算法笔记
揭开scanf(“%d“, &a)!=EOF的神秘面纱 HERODING的算法之路
前言许多时候,我们在编程或者参考他人的代码题时,在遇到循环输入的问题常常会见到while(scanf("%d",&a)!=EOF)的使用,这种用法并不少见,前面的while可以理解,循环嘛,那后面的输入到底该如何理解呢?以前也查阅过资料说EOF是endoffile,也就是输入不等于文件结束,就可以继续输入,记是记下来了,还是无法理解,在复习这段时间,我又查阅了资料,终于弄明白是怎么一回事了,下面我
HERODING77
·
2023-09-30 21:34
笔记
算法
c语言
算法笔记
DFS的千层套路 HERODING的算法之路
DFS的千层套路前言1.理解与审题1.1树的DFS1.2一维数据结构的DFS1.3图的DFS2.解法与优化2.1树的DFS2.2一维数据结构的DFS2.3图的DFS3.总结前言深度优先搜索DFS应该是各家大厂和高校机试的香饽饽,因为这类题型牵扯到图的遍历,略显复杂,但是用递归实现起来相对代码量少,还比较容易找到规律,所以在LeetCode中相当于中等题的难度,所以几乎每两题就会有一题能够使用DFS
HERODING77
·
2023-09-30 21:34
笔记
算法
数据结构
面试
dfs
c++
算法笔记
万物皆可DP——动态规划常见类型 HERODING的算法之路
万物皆可DP前言1.动态规划解题思路1.1解题思路1.2问题特点2.背包问题2.101背包问题2.2完全背包问题2.3多重背包问题3.字符串问题3.1最长公共子序列3.2分割回文串II4.股票问题5.总结前言如果说搜索算法占据了机试算法题的半壁江山,那么动态规划DP就占据了机试算法题的八分江山,可能有些夸张,但是在做题的时候明显可以感觉得到,万物皆可DP不是天方夜谭,什么组合的个数,最长匹配长度,
HERODING77
·
2023-09-30 21:34
笔记
c++
动态规划
数据结构
程序设计
算法
算法笔记
排序算法完整介绍及C++代码实现 HERODING的算法之路
排序算法完整介绍及C++代码实现前言一、插入排序1.1直接插入排序1.2折半插入排序1.3希尔排序二、交换排序2.1冒泡排序2.2快速排序三、选择排序3.1简单选择排序3.2堆排序总结前言数据结构刚好复习到排序部分,排序主要分为三种类型,插入排序、交换排序、选择排序,为了更好理解和记忆,这里我将代码和记录下来,以备遗忘之用,亦可为后人参考~一、插入排序插入排序的思想在于插入,即把要插入的数提取出来
HERODING77
·
2023-09-30 21:04
笔记
c++
排序算法
数据结构
快速排序
堆排序
算法笔记
二叉树已知后序与中序输出前序[二叉树 前序遍历] HERODING的算法之路
二叉树已知后序与中序输出前序。后序:3,4,2,6,5,1(左右根)中序:3,2,4,1,6,5(左根右)解题思路:递归的方式,每次输出根节点,因为前序遍历的每个点都是大大小小子树的根节点,明白这个一切都好说了。因为后序的最后一个总是根结点,令i在中序中找到该根结点,则i把中序分为两部分,左边是左子树,右边是右子树。因为是输出先序(根左右),所以先打印出当前根结点,然后打印左子树,再打印右子树。左
HERODING77
·
2023-09-30 21:03
笔记
二叉树
算法
数据结构
c++
程序设计
【
算法笔记
】不用库函数手撕力扣之力扣146:LRU缓存机制
题目链接题解方法1:全局数据主要思路这里不同于传统的哈希表+双向链表的方法,而是只用一个数据结构创建一个数组,数组的长度可以覆盖所有key可能的取值(0到1w),同时数组中的每个元素除去记录每个key对应的value之外,还需要记录此数据是否在cache中,以及他在cache中的前一个元素和后一个元素的数组下标以便于用于更新cache数据。这种方法牺牲了存储空间,但是效率要比哈希表要高源代码str
小宋今天要早睡
·
2023-09-30 19:46
算法笔记
算法
leetcode
并查集
一、定义
并查集
(UnionFind)是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(动态连通性问题),常常在使用中以森林来表示。
null12
·
2023-09-30 02:33
华为OD机试 - 快递业务站 -
并查集
(Java 2023 B卷 200分)
目录专栏导读一、题目描述二、输入描述三、输出描述1、输入:2、输出:3、说明:四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明华为OD机试2023B卷题库疯狂收录中,刷题点这里专栏导读本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。一、题目描述快
哪 吒
·
2023-09-29 23:37
搬砖工逆袭Java架构师
华为od
java
开发语言
数据结构部分
栈Stack队列Queue链表LinkedList数组Array哈希表HashTable二叉树BinaryTree堆Heap
并查集
UnionFind字典树Trie
JunJ画
·
2023-09-29 14:31
算法笔记
——二分查找
算法笔记
——二分查找二分查找:用于在有序数列中查找目标元素的位置关于区间边界的问题二分法,区间的定义一般为两种,左闭右闭即[left,right],或者左闭右开即[left,right)。
polarday.
·
2023-09-29 03:01
算法
算法
排序算法
leetcode
Leetcode684. 冗余连接
EverydayaLeetcode题目来源:684.冗余连接解法1:
并查集
因为需要判断是否两个节点被重复连通,所以我们可以使用
并查集
来解决此类问题。
UestcXiye
·
2023-09-29 01:20
Every
day
a
leetcode
leetcode
并查集
并查集
详解
并查集
详解什么是
并查集
?
并查集
的基本操作初始化查找根结点查询两个结点是否同根合并
并查集
的优化优化1:避免退化(按秩合并)优化2:路径压缩复杂度分析最终代码实现例题什么是
并查集
?
UestcXiye
·
2023-09-29 01:18
数据结构与算法
数据结构
并查集
C++
【
算法笔记
】求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
1.题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)、位运算、递归、公式、sizeof。习题链接:题目链接2.题目分析该题把我们的所有能用的方法都给限制死了,我们只能用一些的特殊的方法来做。不知道大家在思考的过程中考没考虑过C++中友元的特性和static修饰的变量的使用。3.解题思路我们可以定义一个类
Jiawen_captial
·
2023-09-28 10:46
算法
笔记
c语言
几种典型的算法类型
文章目录一、单调栈1.套路2.模板:3.leetcode例题:二、
并查集
1.套路:2.模板:3.leetcode例题:三、滑动窗口1.套路2.模板3.leetcode例题四、前缀和&HASH1.套路1.1
Thomas_Cai
·
2023-09-28 08:49
leetcode算法
算法
python
leetcode
【2023.3.5】MOOC程序设计与算法
【2023.3.5】MOOC程序设计与
算法笔记
文章目录【2023.3.5】MOOC程序设计与
算法笔记
说明一、枚举二、递归1-汉诺塔问题2-N皇后问题3-逆波兰表达式4、全排列问题三、二分算法1-BinarySearch
C4cke
·
2023-09-28 04:08
数据结构_算法
C语言
算法
深度优先
图论
二进制(秋季每日一题2023)(
并查集
+ 逆元求组合数)
题目https://www.acwing.com/problem/content/5173/题目大意:给定N,K以及一个K-子串数字和序列,请你计算一共有多少个不同的长度为N的二进制串可以得到该K-子串数字和序列。(K-子串数字和序列参考题目中的定义)思路首先看数据范围,N和K都是10610^6106,所以复杂度要控制在O(nlogn)O(nlogn)O(nlogn)以内。下面是分析思路。首先看K
zadarmo_
·
2023-09-27 20:13
数学
AcWing
算法
React项目中如何实现一个简单的锚点目录定位
小册这是我整理的学习资料,非常系统和完善,欢迎一起学习现代JavaScript高级小册深入浅出Dart现代TypeScript高级小册linwu的
算法笔记
前言锚点目录定位功能在长页面和文档类网站中非常常见
linwu-hi
·
2023-09-27 18:17
react.js
前端
前端框架
自动化兼容性检查和解决方案:应用不会再白屏了
点击在线阅读,体验更好链接现代JavaScript高级小册链接深入浅出Dart链接现代TypeScript高级小册链接linwu的
算法笔记
链接引言对于前端开发者来说,caniuse网站是一个非常有用的工具
linwu-hi
·
2023-09-27 18:42
自动化
运维
前端
javascript
vuejs
reactjs
白屏
P1790 小胡同学的连通图
用
并查集
做#include#include#include#include#includeusingnamespacestd;intpar[105]={0};intrank0[105]={0};introot
湿物男
·
2023-09-27 10:00
算法
c++
数据结构
华为OD七日集训第6期 十一特辑 - 按算法分类,由易到难,循序渐进,玩转OD
一、逻辑分析二、数据结构1、线性表①数组②双指针2、map与list3、优先队列4、滑动窗口5、二叉树6、
并查集
7、栈三、算法1、基础算法①贪心算法②二分查找③分治递归④搜索算法⑤排序算法2、字符串①KMP②
哪 吒
·
2023-09-27 02:20
搬砖工逆袭Java架构师
华为od
算法
七日集训
学习
送书
POJ - 1984 Navigation Nightmare(带权
并查集
维护两个d值)
题目链接思路:带权
并查集
维护两个权,此时有两个距离需要维护,dx表示横坐标距离,dy表示纵坐标距离,东为x方向权值+w,南为y方向+w,西为x方向-w,北为y方向-w,因为题目要求的查询是依据前c行的
并查集
构建程度查询的
Belief_7
·
2023-09-26 21:56
刷题记录
算法
POJ - 2492 A Bug‘s Life(带权
并查集
板子)
题目链接思路:带权
并查集
板子题,将种类分为两类,对2取余为0的一类,取余为1的一类,对于每组输入数据维护带权
并查集
关系,遇到与前面相悖的就直接flag更新,这组数据后面的就不用考虑了。
Belief_7
·
2023-09-26 21:56
刷题记录
c++
POJ - 1733 Parity game(带权
并查集
+ 离散化)
题目链接思路:带权
并查集
维护+离散化,当l~r区间1的个数为odd奇数时可以看成((d[r]-d[l-1])%2)==1,当l~r区间1的个数为even偶数时可以看成((d[r]-d[l-1])%2)=
Belief_7
·
2023-09-26 21:55
刷题记录
算法
React项目中如何实现一个简单的锚点目录定位
小册这是我整理的学习资料,非常系统和完善,欢迎一起学习现代JavaScript高级小册深入浅出Dart现代TypeScript高级小册linwu的
算法笔记
前言锚点目录定位功能在长页面和文档类网站中非常常见
·
2023-09-26 15:35
【算法系列】数据结构,包括链表、双向链表、栈、队列、
并查集
等
目录一、前言二、链表与邻接表2.1单链表2.1.1常见操作2.1.2问题分析2.2双链表2.2.1常见操作2.2.2问题分析三、栈与队列3.1堆栈3.1.1常见操作3.1.2模拟栈3.1.3表达式求值3.2队列3.2.1常见操作3.2.2模拟队列3.3单调栈3.3.1问题描述3.3.2代码3.4单调队列3.4.1问题描述3.4.2代码四、KMP五、Trie树5.1基础知识5.1.1存储方式5.1.
For 丶I Forever
·
2023-09-26 15:56
算法系列
算法
数据结构
编程语言
链表
fold的毒瘤题
easy:做法1.可以仿照最小生成树的Kruskal做法,将边权按照从小到大排序对于每个询问:按边权从小到大依次连接各个边,同时用
并查集
维护特殊点的连通性,一旦某条边加入后,遍历所有的特殊点发现它们属于同一集合
fo0Old
·
2023-09-26 13:28
题解
题解
上一页
15
16
17
18
19
20
21
22
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他