news 2026/4/15 23:51:31

并查集的实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
并查集的实现


代码求解

father数组: 每个集合元素往上的指针,下标对应节点编号,初始时每个节点指向自己。

size数组:记录每个集合的大小,初始时每个集合大小为1。

stack数组 : 用于扁平化过程中收集沿途节点。

publicstaticintMAXN=1000001;publicstaticint[]father=newint[MAXN];publicstaticint[]size=newint[MAXN];publicstaticint[]stack=newint[MAXN];publicstaticintn;publicstaticvoidbuild(){for(inti=0;i<=n;i++){father[i]=i;size[i]=i;}}publicstaticintfind(inti){intsize=0;while(i!=father[i]){stack[size++]=i;i=father[i];}while(size>0){father[stack[--size]]=i;}returni;}publicstaticbooleanisSameSet(intx,inty){returnfind(x)==find(y);}publicstaticvoidunion(intx,inty){intfx=find(x);intfy=find(y);if(fx!=fy){if(size[fx]>=size[fy]){size[fx]+=size[fy];father[fy]=fx;}else{size[fy]+=size[fx];father[fx]=fy;}}}publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));StreamTokenizerin=newStreamTokenizer(br);PrintWriterout=newPrintWriter(newOutputStreamWriter(System.out));while(in.nextToken()!=StreamTokenizer.TT_EOF){n=(int)in.nval;build();in.nextToken();intm=(int)in.nval;for(inti=0;i<m;i++){in.nextToken();intop=(int)in.nval;in.nextToken();intx=(int)in.nval;in.nextToken();inty=(int)in.nval;if(op==1){out.println(isSameSet(x,y)?"Yes":"No");}else{union(x,y);}}}out.flush();out.close();br.close();}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 12:48:51

Leetcode200岛屿数量

题目分析 要区分二维矩阵中的每个1&#xff0c;需要将二维问题转化为一维编号问题。 如果矩阵有m列&#xff0c;位于第i行、第j列的元素对应的一维编号为i乘以m加j。 先将所有的1建成小集合&#xff0c;遍历矩阵&#xff0c;遇到1时&#xff0c;如果其左边或者上边有1则进行合并…

作者头像 李华
网站建设 2026/4/15 15:15:29

OpenRGB:一站式解决多品牌RGB设备控制难题的专业方案

OpenRGB&#xff1a;一站式解决多品牌RGB设备控制难题的专业方案 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. Release…

作者头像 李华
网站建设 2026/4/7 10:46:37

CatServer终极部署指南:从零到精通的一键式搭建方案

你是否曾经为Minecraft服务器搭建而头疼&#xff1f;模组与插件难以共存&#xff1f;性能优化无从下手&#xff1f;今天&#xff0c;让我们一起来探索CatServer的魔力&#xff0c;这个集Forge、Bukkit和Spigot于一身的超级服务器核心将彻底改变你的游戏体验&#xff01; 【免费…

作者头像 李华
网站建设 2026/4/13 12:34:48

如何快速评估代码复杂度:Lizard工具的完整使用指南

如何快速评估代码复杂度&#xff1a;Lizard工具的完整使用指南 【免费下载链接】lizard A simple code complexity analyser without caring about the C/C header files or Java imports, supports most of the popular languages. 项目地址: https://gitcode.com/gh_mirror…

作者头像 李华
网站建设 2026/3/20 20:11:58

github镜像license说明明确IndexTTS2开源协议

IndexTTS2 深度解析&#xff1a;中文情感语音合成的开源实践 在智能语音技术日益渗透日常生活的今天&#xff0c;我们早已习惯了手机助手的温柔提醒、车载导航的清晰播报&#xff0c;甚至虚拟主播流畅的直播解说。但你是否曾想过&#xff0c;这些“会说话”的AI背后&#xff0c…

作者头像 李华
网站建设 2026/4/14 3:17:55

幽冥大陆(九十一 ) 水果识别在线检测模型netron —东方仙盟练气期

在科技与传统认知交织的当下&#xff0c;机器学习模型的训练恰似东方仙盟弟子的修炼之路 —— 数据源是修炼的 “灵脉矿石”&#xff0c;Python 代码是 “修炼心法”&#xff0c;Win7 环境则是稳固的 “修炼洞府”&#xff0c;唯有步步为营、循法修炼&#xff0c;方能练就 “办…

作者头像 李华