【数据结构】可撤销并查集 - Slayer

news/2025/10/9 20:32:49/文章来源:https://www.cnblogs.com/slayer-wt/p/19131912

可撤销并查集只可以按照加入的时间从后到前撤销加边操作。

具体的,我们会把所有加入的边压入一个栈,然后当什么时候要撤销时不断从栈顶弹出一条边,撤销掉。而至于具体的撤销步骤,我们假设此边原来是把 y 连向 x,那么我们直接把 y 的父亲设为 y 本身,因为在合并两个集合时是把两个端点都执行了一遍找祖先的操作,所以 y 必定作为其原集合的祖先。我们再把 x 的子树大小减去一个 y 的子树大小,那么就还原成功了。

那么对于一条边为什么一定要是有顺序的撤销呢?如果不是按出栈的顺序撤销,那么必定有比他晚一些连边的集合的大小没法维护,所以必须按出栈顺序撤销。

fromzac

int find(int x){return x==fa[x]:x:find(fa[x]);}void merge(int u,int v){int fu=find(u),fv=find(v);if(fu==fv){return ;}if(sz[fu]<sz[fv]){swap(fu,fv);}stk[++top]=fv;fa[fv]=fu;sz[fu]+=sz[fv];
}void del(){if(!top)return  ;int v=stk[top];top--;sz[fa[fv]]-=sz[fv];fa[fv]=fv;
}while(top>tmp)del();

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

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

相关文章

直播美颜sdk的底层逻辑:人脸美型机制的算法与架构解析

直播美颜sdk的底层逻辑:人脸美型机制的算法与架构解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

从开放重定向到XSS:漏洞升级实战

本文详细记录了安全研究员如何发现网站开放重定向漏洞,并通过编码绕过防火墙成功升级为XSS攻击的全过程。文章包含具体的漏洞利用步骤、防火墙绕过技巧和最终的攻击验证,为网络安全爱好者提供了实用的技术参考。从开…

余弦日记

我擦,我不知道2025 年 10 月 2 日,对我来说是传说般的一天,因为我克服了在本科四年间缺乏社交导致的、对陌生人的社交恐惧症,去本地的一个漫展出了余弦。 上一次去漫展,可能是两年前暑假的上海东方 Only,再上一次…

【题解】P11459 [USACO24DEC] Its Mooin Time P

其实是套路题。但有段时间没写过闵可夫斯基和优化 \(dp\) 了,记录一下。 先简单回顾一下闵可夫斯基和。点集 \(P\) 与 点集 \(Q\) 的闵可夫斯基和定义为:\(P+Q=\{a+b|a\in P,b\in Q\}\) 。 对于两个凸包的闵可夫斯基…

创建一个springboot项目,mybatis连接嵌入式数据库H2,实现增删改查功能

@目录目标创建一个spirngboot项目创建流程第一次运行项目,界面如下mybatis连接数据库H2依赖:mybatis + h2配置文件schema.sql实现对用户的增删改查创建entity创建mapper创建service创建controller搭配前端程序,修改…

基于众包的产品质量比较与推荐算法研究

本研究通过众包方式探索影响顾客购买决策的因素,发现顾客评论和问答内容比商家描述更能预测产品质量感知,这些发现可用于改进产品发现算法,提高推荐相关性。探索顾客购买决策背后的原因 研究背景 为了提升产品发现算…

10/9

进一步学习了链表插入的相关知识,规划了自己的实验选题系统。

2025.10.9

今日:学习英语 明日:学习英语 敲代码

深入解析:一款相机是只有桶形畸变 和 枕形畸变的一种,还是两个都有?

深入解析:一款相机是只有桶形畸变 和 枕形畸变的一种,还是两个都有?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &…

记忆化

记忆化记忆化搜索(减少重复计算,对搜索的优化)DFS指数级 记忆化保证了每个值只计算一次限制在了NM时间范围内=等价于DP动态规划好处:不需要考虑循环顺序,且只考虑有解的状态,相较递推效率可能更高 弊端:需要考虑边…

重组抗体技术:从原理到应用,解锁高效可控的新一代抗体研发

在抗体技术迭代中,重组抗体凭借 “基因工程改造 + 可控化生产” 的核心优势,逐渐取代传统杂交瘤抗体,成为科研、诊断与治疗领域的主流工具。它不仅解决了动物源抗体的免疫排斥问题,还能灵活设计为全长抗体、小分子…

关于jinja2的ssti模版注入的学习+过滤

查找想要的模块 cnt = 0 for item in [].__class__.__base__.__subclasses__():try:if os in item.__init__.__globals__:print(cnt, item)cnt += 1except:cnt += 1continue{% for i in range(300) %}{{ i }} - {{ .__…

WPF Epplus export 10M+ items in excel with multiple sheets batch by batch

Install-Package Epplus; private async Task ExportAsExcelCommandExecuted(object? obj) {try{await PopulateStatusMsg($"Start exporting");exportedIdx = 0;var dg = obj as DataGrid;var items = dg.…

[EGOI 2023] Guessing Game

精彩。 这篇题解有思路讲解,只想看做法的可以看其它题解。 做题第一步一定是先把题目要干什么弄清楚。不妨令这题第一个人是 A(除了最后一个访问的元素的信息填写者),第二个人是 B(接收信息者),第三个人是 C(最…

CF2152G Query Jungle

很精巧的题。 很明显求的是虚树的叶子结点数量。 然而这个玩意还带修,看起来有点恶心。不过带修的问题一般都不会很复杂,再加上子树修改我们考虑用搜索序把树拍到序列上,为了更好的刻画叶子,我们可以考虑使用性质更…

[ROI 2018] Addition without carry

还是记录一下,有点怪但是有点帅。 首先条件等价于和不进位,也就是说每一位只有一个 \(b\) 是 \(1\)。 对于 \(b_i\ge a_i\) 的限制我们可以当成 \(a_i\) 加若干非负数,考虑 check 一个答案是否合法,记得确定一个漂…

[THUPC 2025 决赛] Im Here

题目给了一刻编号为搜索序的树,我们形式化限制,考察方案序列:若 \(u\) 是 \(v\) 的祖先,则 \(u\) 在 \(v\) 后面。 第 \(i\) 个点只能出现在 \([1,n-i+1]\) 这些位置中。显然限制一是一个树上拓扑序计数的东西,我…

下好多雨

下好多雨继续hbase 和其他作业

解码Linux基础命令

Linux 基础命令 核心概念:终端、Shell 与内核的关系 Linux 中用户通过终端(Terminal)与系统交互,终端是运行Shell(命令解释器)的窗口,而 Shell 是连接用户与内核(Kernel)的桥梁:内核:系统核心,管理 CPU、内…

戴尔电脑开机出现supportassist怎么办_戴尔电脑开机出现supportassist多种解决优秀的方法

戴尔电脑开机出现supportassist怎么办_戴尔电脑开机出现supportassist多种解决优秀的方法2025-10-09 19:36 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important…