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
算法笔记——并查集
C++
并查集
目录1知识点1知识点2知识点321知识点1
并查集
:1.将两个集合合并2.询问两个元素是否在一个集合当中基本原理:每个集合用一棵树来表示。树根的编号就是整个集合的编号。
YMWM_
·
2024-01-11 05:37
Acwing
C++学习
个人笔记
并查集
并查集
(解释和C++模板)
文章目录前言一、结构定义及初始化二、查找结点所在集合根节点三、合并四、路径压缩解释五、整体模板总结前言
并查集
是一种树形的数据结构,顾名思义,它用于处理一些不交集的合并及查询问题(可以判断两个结点之间是否连通
Believe ha
·
2024-01-11 05:37
数据结构
C++
并查集
|| 模版题:合并集合
并查集
:1.将两个集合合并2.询问两个元素是否在一个集合当中基本原理:每个集合用一棵树来表示。树根的编号就是整个集合的编号。
伏城无嗔
·
2024-01-11 05:06
树
力扣
算法笔记
c++
算法
数据结构
226.【2023年华为OD机试真题(C卷)】精准核酸检测(
并查集
-Java&Python&C++&JS实现)
点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握!文章目录一.题目-精准核酸检测二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Java&Python&C++&JS分别讲解)
一见已难忘
·
2024-01-11 02:32
算法之翼—华为OD机试专栏
华为od
c语言
java
精准核酸检测
python
javascript
基础数据结构第八期
并查集
前言
并查集
这部分还是挺重要的,应该要熟练掌握哦!!!
娇娇yyyyyy
·
2024-01-10 18:09
#数据结构与算法
数据结构
并查集
--畅通工程
3719.畅通工程-AcWing题库https://www.acwing.com/problem/content/3722/某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。所有道路都是双向的。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条双向道路?输入格式第11行给出两个
m0_64953392
·
2024-01-10 17:10
算法
数据结构
【
算法笔记
】分治专题
分治整体结构分解对于一些问题,当规模小到某个程度时,会自动得到解决。分治就是利用了这个特性,将问题分解成若干个更小的、相似的子问题,使子问题可以轻松得到解决。在这一步我们还需要确保:子问题确实是原问题的小规模版,可以用与原问题同样的模式对其进行处理,且子问题之间相互独立。处理如果需要对分解后的集合单独做一些特定的处理,可以在这一步完成。合并如果需要对分解后的集合共同做一些特定的处理,可以在这一步完
_六六_
·
2024-01-10 16:03
算法笔记
算法
排序算法
数据结构
【
算法笔记
】动态规划专题
所有解题思路已经直接整合在代码注释中。动态规划整体结构条件抽象与状态描述【重点1】根据题目给出的限制条件,抽象出会影响决策的部分,这个条件的数量和用法,基本上就是dp领域内题目分类的依据了。比如,单上限的一般用线性dp,双上限(双指针)的一般用二维dp,子集等条件为选不选、选几个的问题一般就归类为背包问题,需要枚举区间长度和起点来描述条件的一般归类为区间dp,等等。动态规划的每一步追求的都是当前最
_六六_
·
2024-01-10 16:26
算法笔记
算法
笔记
动态规划
高级数据结构:
并查集
文章目录1.什么是
并查集
:2、
并查集
的基本结构3.现实问题和代码实现链接4.代码实现1.什么是
并查集
:对于一个集合S={a1,a2,……an-1,an},这是可以对集合S进一步划分:S1,S2,……,Sm
嘉城401
·
2024-01-10 10:01
数据结构
算法
【Acwing
并查集
】238. 银河英雄传说
238.银河英雄传说-AcWing题库题意:思路:
并查集
维护两个信息:每个连通块的size和每个结点之间的距离对于连通块的size,只需要在合并的时候维护一下就好了对于每个结点之间的距离,我们考虑类似于树上差分的思想
lamentropetion
·
2024-01-09 17:20
并查集
算法
c++
数据结构
acwing21
并查集
合并集合一共有n个数,编号是1∼n,最开始每个数各自在一个集合中。现在要进行m个操作,操作共有两种:Mab,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;Qab,询问编号为a和b的两个数是否在同一个集合中;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为Mab或Qab中的一种。输出格式对于每个询问指令Qab,都要输出一个结果,如果a和b在
波风一一水门
·
2024-01-09 17:49
笔记
c++
并查集
数据结构
合并集合(
并查集
模板)
一共有n个数,编号是1∼n,最开始每个数各自在一个集合中。现在要进行m个操作,操作共有两种:Mab,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;Qab,询问编号为a和b的两个数是否在同一个集合中;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为Mab或Qab中的一种。输出格式对于每个询问指令Qab,都要输出一个结果,如果a和b在同一集合
wowon~
·
2024-01-09 17:49
并查集
数据结构
c++
算法
并查集
acwing基础课——
并查集
由数据范围反推算法复杂度以及算法内容-AcWing常用代码模板2——数据结构-AcWing基本思想:
并查集
是一种树型的数据结构,在近乎O(1)的复杂度来处理一些不相交集合的合并及查询问题(即所谓的并、查
我的鱼干呢w
·
2024-01-09 17:17
acwing算法基础课二刷记录
数据结构
算法
c++
AcWing:
并查集
并查集
理论基础
并查集
的作用是什么:将两个集合合并。询问两个元素是否在一个集合当中。
clementines_
·
2024-01-09 17:17
c++
算法
数据结构
AcWing 836.合并集合(
并查集
)
题目(
并查集
好像面试挺爱考的,代码短还有思维)思路if(p[a]!
少女的英雄梦312
·
2024-01-09 17:15
练习题
合并集合(
并查集
)
思路
并查集
可以判断连通块的数量,可以判断集合的大小。
做一只大熊猫
·
2024-01-09 17:45
#
并查子集
图论
算法
java
并查集
(ACWING三道题)
1.适用题型在我个人理解,
并查集
是用于解决这样的问题:题目中的数据分多个集合,并且有合并的可能,有时需要查找两个元素是不是在同一集合,以及该集合中所有元素的数量。
阳光.
·
2024-01-09 17:45
算法打怪升级之路
图论
c++
数据结构
AcWing |【
并查集
】合并集合
题目内容一共有n个数,编号是1~n,最开始每个数各自在一个集合中。现在要进行m个操作,操作共有两种:“Mab”,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;“Qab”,询问编号为a和b的两个数是否在同一个集合中;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为“Mab”或“Qab”中的一种。输出格式对于每个询问指令”Qab”,都要输出一
Leonadoice
·
2024-01-09 17:15
算法训练营
AcWing |【
并查集
】食物链
题目内容动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B,B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是”1XY”,表示X和Y是同类。第二种说法是”2XY”,表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,
Leonadoice
·
2024-01-09 17:15
算法训练营
acwing算法基础课:
并查集
并查集
模板作用:1.将两个集合合并2.询问两个元素是否在同一个集合中近乎O(1)时间复杂度完成上述操作基本原理:每个集合用一棵树表示,树根的编号就是整个集合的编号。
墨染&殇泪
·
2024-01-09 17:14
acwing
#
数据结构
算法
合并集合(
并查集
)
作用:高效的合并两个集合和查询两个元素是否在同一个集合,时间复杂度近O(1);原理:每个集合用一颗树来表示,树根的编号就是整个集合的编号,每个节点存储他的父节点。#includeusingnamespacestd;constintN=100010;intp[N];intfindd(intx){while(p[x]!=x){x=p[x];}returnx;}intmain(){ios::sync_w
秘制函数
·
2024-01-09 17:44
数据结构
算法
c++
数据结构
银河英雄传说 acwing-238
并查集
题面链接:238.银河英雄传说-AcWing题库题面:思路:
并查集
,如果没有求两艘战舰之间的战舰数量,这就是一题很简单的
并查集
但是这题需要计算两艘战舰之间的数量,我们就需要维护一个d数组,保存的是当前战舰到战舰头的距离
Evil_boy__
·
2024-01-09 17:14
c++
数据结构
并查集
Acwing
并查集
学习记录
思路:当形成闭环的时候游戏结束,所以添加最后一边时,应满足该边的两端在同一个联通块中,所以可用
并查集
,判断两点的祖宗节点是否相同。
haniwn
·
2024-01-09 17:13
笔记
算法
AcWing-
并查集
-合并路径
文章目录
并查集
acwing-836合并路径
并查集
将两个集合合并询问两个元素是否在一个集合当中O(1)近乎O(1)基本原理:每个集合用一棵树来表示,树根的编号就是整个集合的编号。
superkcl2022
·
2024-01-09 17:13
#
AcWing
算法
数据结构
AcWing 算法基础
并查集
并查集
并查集
解决的问题将两个集合合并询问两个元素是否在一个集合中基本原理用树的形式来维护每个集合,树根的编号就是整个集合的编号,每个节点存储他的父节点,p[x]表示x的父节点问题1,如何判断树根:if(
mu6y
·
2024-01-09 17:40
算法
算法
数据结构
算法学习周记4(acwing
并查集
、二分)
acwing——836合并并查一共有nn个数,编号是1∼n1∼n,最开始每个数各自在一个集合中。现在要进行mm个操作,操作共有两种:Mab,将编号为aa和bb的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;Qab,询问编号为aa和bb的两个数是否在同一个集合中;输入格式第一行输入整数nn和mm。接下来mm行,每行包含一个操作指令,指令为Mab或Qab中的一种。输出格式对于每个
whisper_cxl
·
2024-01-09 17:10
算法
学习
acwing
并查集
目录
并查集
的路径压缩两种方法法一法二AcWing240.食物链AcWing837.连通块中点的数量示例
并查集
自写
并查集
并查集
的路径压缩两种方法法一沿着路径查询过程中,将非根节点的值都更新为最后查到的根节点
honortech
·
2024-01-09 17:08
数据结构
c++
算法
408重要数据结构+算法汇总——C语言手搓版(全)
目录:线性表链表栈队列链栈链队二叉树线索二叉树堆堆排序
并查集
(quickfind、quickunion、w-qickunion、路径压缩)AVL树红黑树B树拓
一碗姜汤
·
2024-01-09 12:46
cs算法数据结构
算法
数据结构
c语言
【
算法笔记
】贪心算法——01背包问题
贪心算法——01背包问题#includeusingnamespacestd;intmain(){intn;//物品数floatc;//背包容量floatres=0;cin>>n>>c;floatv[n];//物品价值floatw[n];//物品重量floata[n];//物品单价for(inti=0;i>v[i]>>w[i];a[i]=v[i]/w[i];}//找出单价最大值及下标floatmax
G11176593
·
2024-01-09 09:01
算法
贪心算法
c++
并查集
算法
并查集
算法参考文档:https://baike.baidu.com/item/%E5%B9%B6%E6%9F%A5%E9%9B%86/9388442?
烟波灼灼
·
2024-01-08 17:25
C++中使用vector保存新建对象中自指指针的问题
问题在某些场景中(例如
并查集
),我们需要将新建对象中的指针指向对象自己。
A11en3
·
2024-01-07 21:17
C++Primer
内存管理
c++
算法
开发语言
优化算法matlab实现(十)萤火虫算法matlab实现
1.代码实现不了解萤火虫算法可以先看看优化
算法笔记
(十)萤火虫算法实现代码前需要先完成优化算法matlab实现(二)框架编写中的框架的编
stronghorse
·
2024-01-07 12:18
【
算法笔记
】状态机dp
状态机dp概述当一个事件涉及的过程的考虑并且方案数的考虑比较繁琐时,我们可以尝试用状态机的思想去考虑这个问题,将这个问题简化,就是去考虑一个对象他所具有的几种状态。状态机主要考虑一下两个方面:状态和转移状态其实也就是正常在dp过程中分析的,不用过多解释了。转移:状态与状态之间的转移,根据实际题目,分析状态与状态之间是否能转移,能转移的就画一根箭头。最后会发现其实就是一个有向图。触发机制样题:股票买
Radein
·
2024-01-07 08:19
笔记
动态规划
算法
c++
【基础
算法笔记
】Prim,Kruskal,匈牙利算法
在acwing上学习算法的一点思考与总结匈牙利算法这个算法是个很有趣的算法,也很好用。引用acwing一句高赞评论:匈牙利算法准则:待字闺中,据为己有;名花有主,求他放手。还有来自人生导师y总的总结【doge】:一定要坚持不懈,就算前面有一个困难,也不要直接退缩,直接退缩是完全没有希望的。只有当尝试各种各样的方法都达不到后,我们才考虑放弃。简单来说就是如果两个点(a,b)同时连到一个点c时,如果先
Radein
·
2024-01-07 08:48
算法
图论
笔记
c++
【基础
算法笔记
】贪心算法中的区间问题
在acwing上学习算法的一点思考和总结感受:贪心算法难在他的证明,很多时候我们都是有一个感觉,然后去猜是否能用贪心做,借助几个实例去证明贪心算法的正确性。个人感觉自己对贪心的证明还不是很透彻,得多做点题悟一悟。这里暂时先不写贪心的证明了,等以后彻底搞懂了贪心再回来补上吧。区间选点原创大大(智障也有春天):AcWing905.区间选点的贪心思路的正确性证明-AcWing要想看懂Y总的证明,关键是要
Radein
·
2024-01-07 08:48
算法
贪心算法
学习
c++
笔记
【基础
算法笔记
】dp(背包问题)
在acwing上学习算法时的一点思考与总结。如何理解dp思路:动态规划解决问题的方式就是将一个大问题分解成多个子问题。每个子问题的决策都会影响下一个子问题的决策,也就是i状态会受到i-1状态的影响。根据这个特点,我们可以写出状态转移方程。状态转移方程的意义就在于不断更新f[i][j]的结果。思考:dp的优势就在于当考虑i状态时,i-1前面的状态就可以不用考虑了,他们的最优解已经被计算出来存在f[i
Radein
·
2024-01-07 08:18
笔记
算法
c++
【
算法笔记
】BFS(走迷宫,八数码)
AcwingyydsBFS(宽度优先遍历)与深度优先搜索一条路走的死的方式不同,宽度优先遍历是一层一层来搜,当一层的节点被搜索完成后,才会进入下一层。因此可以利用BFS来找到最短路径(当路径权值为1的时候)。接下来用两个例题展示。走迷宫思路:从起点开始遍历能走到的点,然后再继续找到能走到的点。以上图为例起点是(0,0),遍历到能够走到的点为(1,0)只有一个。然后继续遍历可走的点(2,0)也只有一
Radein
·
2024-01-07 08:18
算法
笔记
宽度优先
【
算法笔记
】深入理解dfs(两道dp题)
DFS过程的概述一个一个节点的搜,如果是树状结构的话,先找到最左边那一条分支搜到最后一个节点,这个时候最后一个节点(假设是b)的数据会被更新(具体看题目的要求),然后返回到上一个节点(假设是a)(如果有两层dfs的话,需要画个分叉图辅助理解)。此时a节点使用下层刚刚被更新过的数据(即b节点)来更新a节点的数据。更新完后如果a节点下方还有一个节点,那么就要继续往下搜索,继续把a节点的数据更新完全(也
Radein
·
2024-01-07 07:15
笔记
动态规划
深度优先
算法
c++
代码训练day59|单调栈part02
参考:代码随想录如何高效解决接雨水问题|labuladong的
算法笔记
503.下一个更大元素II与下一个更大元素|的区别就是要把数组考虑为环形(只有数组内最大值为-1)按照之前的环形为题解决经验,直接拼接两个数组解决即可工程能力
AdrianLeon
·
2024-01-06 23:20
算法
最小生成树kruskal算法matlab,最小生成树 Kruskal算法
不难看出,我们需要使用
并查集
。由于每次选择最小边,所以需要对所有边进行排序,设计
土豆土豆我马铃薯
·
2024-01-06 16:14
【洛谷1661 扩散】二分答案 |
并查集
| 最小生成树 | E
谨以此题纪念我的第一次正式二分答案~洛谷【P1661】扩散时空限制1000ms/128MB698通过1.7K提交Tags:二分答案最小生成树
并查集
题目描述一个点每过一个单位时间就会向四个方向扩散一个距离
Keyu Tian
·
2024-01-06 16:13
L
洛谷
B
并查集
E
二分答案
Z
最小生成树
洛谷
二分答案
并查集
最小生成树
Irene‘s Dijkstra和A*
算法笔记
1.Dijkstra算法Dijkstra算法基于贪心算法,也可以理解为带有dptable(备忘录)的BFS算法,时间复杂度为O(ElogV),E为图中边的条数,V为节点个数。用来解决单源最短路径问题。Dijkstra算法要求不能有负权重数。单源最短路径问题:给一张有向图G=(V,E),V是点集,E是边集,|V|=n,|E|=m,节点为|1,n|连续编号,(x,y,z)为从x出发,到y节点,长度为z
Irene's broom
·
2024-01-06 03:28
算法
常见的
并查集
题目
总结
并查集
逻辑实现的优化有两种,第一种是查找时路径压缩,第二种是按秩合并,合并时将高度较小的树作为较高树的子树,从代码量来看,推荐使用路径压缩,可以参考lc547.省份数量的两种UnionFind写法题目
xxx_520s
·
2024-01-05 07:00
数据结构
算法
数据结构
[
算法笔记
]如何证明一个问题是NPC问题
[
算法笔记
]如何证明一个问题是NPC问题步骤(Step)例子(Example)做题经验分析(Analysis)总结(Sumup)步骤(Step)在进入正题前,我想向大家讲解一下归约(reduction)
Cplus_ruler
·
2024-01-05 03:18
数据结构
算法
图论
[
算法笔记
]NPC问题证明sample
[
算法笔记
]NPC问题证明sample前言一些概念一些例子Reductionto3-ColoringNPBasicsreducevertexcovertodominatingset另一个解法:reducesetcovertodominatingsetpartition
Cplus_ruler
·
2024-01-05 03:18
算法
np问题
NPC
优化算法matlab实现(二十六)和声搜索算法matlab实现
1.代码实现不了解和声搜索算法可以先看看优化
算法笔记
(二十六)和声搜索算法实现代码前需要先完成优化算法matlab实现(二)框架编写中的
stronghorse
·
2024-01-04 23:17
考研复试复习-
算法笔记
(1前言)
1、PATProgrammingAbilityTest,是考察计算机程序设计能力的一个考试,分为三级,顶级将涉及到大量ACM-ICPC竞赛的考点今年春季的话截止时间为2024年2月29日23:59,要是考研没考上的兄弟姐妹们可以考虑以下这个,这个等级证书还是比较有价值的,就是报名费有点贵,谨慎啊。2、codeup本来是酷哒开发的,但好像被阿里云收购了,我去看了一下,这个题库好像能试用用一段时间,但
买橘子送洗面奶
·
2024-01-03 20:04
考研
算法
循序渐进的6种版本的
并查集
(java实现版)
目录引入
并查集
的具体讲解及代码实现QuickFindQuickUnion基于size的优化代码实现基于rank的优化代码实现路径压缩代码实现更多关于路径压缩的
并查集
引入由孩子指向父亲的这种特殊的树结构可以很高效的处理连接问题
一起看雪吗_
·
2024-01-03 06:47
#数据结构与算法
java
数据结构
算法
并查集
树形结构
Dijkstra 算法的实现(
算法笔记
)
算法笔记
:1)Dijkstra算法的伪代码:/**1)Dijkstra算法的伪代码:voidDijkstra(G,d[],s){初始化:for(循环n次){u=使d[u]最小的还未被访问的顶点的标号;记
疯疯癫癫才自由
·
2024-01-02 15:14
数据结构
算法笔记
算法
c++
数据结构
[蓝桥杯基础题型] 图论题目
把障碍连在一起的看成
并查集
,当有
并查集
可以把出发点和起点割开,
Waldeinsamkeit41
·
2024-01-02 01:32
蓝桥杯
算法
图论
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
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
其他