news 2026/5/1 10:55:24

并查集的实现

作者头像

张小明

前端开发工程师

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/5/1 4:45:02

Xenia Canary:终极Xbox 360模拟器使用指南 - 5分钟上手教程

Xenia Canary&#xff1a;终极Xbox 360模拟器使用指南 - 5分钟上手教程 【免费下载链接】xenia-canary 项目地址: https://gitcode.com/gh_mirrors/xe/xenia-canary 还在为无法在现代PC上玩经典Xbox 360游戏而烦恼吗&#xff1f;&#x1f914; Xenia Canary提供了完整的…

作者头像 李华
网站建设 2026/5/1 4:42:29

AI虚拟试衣技术深度解析:从服装迁移到商业应用的完整指南

AI虚拟试衣技术深度解析&#xff1a;从服装迁移到商业应用的完整指南 【免费下载链接】OOTDiffusion 项目地址: https://gitcode.com/GitHub_Trending/oo/OOTDiffusion 你是否曾经在网购时对着屏幕想象衣服穿在自己身上的样子&#xff1f;传统的虚拟试衣技术常常面临服…

作者头像 李华
网站建设 2026/5/1 4:58:05

ESP32开发必备:esptool实战指南从入门到精通

ESP32开发必备&#xff1a;esptool实战指南从入门到精通 【免费下载链接】esptool 项目地址: https://gitcode.com/gh_mirrors/esp/esptool 你是否正在为ESP32芯片的固件烧录而烦恼&#xff1f;esptool.py作为ESP系列芯片的核心编程工具&#xff0c;能帮你轻松解决这些…

作者头像 李华
网站建设 2026/5/1 6:49:09

从零实现USB转485驱动在嵌入式开发板上的部署

从零构建USB转485驱动&#xff1a;打通嵌入式与工业设备的通信链路你有没有遇到过这样的场景&#xff1f;手里的嵌入式开发板性能强劲&#xff0c;跑着Linux系统&#xff0c;接口也齐全——唯独没有原生RS-485串口。可现场一堆PLC、电表、温控器全都是Modbus RTU协议&#xff0…

作者头像 李华
网站建设 2026/4/30 11:56:13

小米手表表盘设计工具:5步打造个性化智能表盘

小米手表表盘设计工具&#xff1a;5步打造个性化智能表盘 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 想要为你的小米智能手表打造专属表盘吗&#xff1f;M…

作者头像 李华
网站建设 2026/5/1 5:47:35

Let‘s Encrypt免费证书为IndexTTS2 WebUI启用HTTPS加密

Let’s Encrypt免费证书为IndexTTS2 WebUI启用HTTPS加密 在AI语音合成技术日益普及的今天&#xff0c;越来越多开发者选择本地部署如IndexTTS2这类功能强大的文本转语音系统。其WebUI界面直观易用&#xff0c;支持情感调节、语调控制和实时试听&#xff0c;极大降低了使用门槛。…

作者头像 李华