首页 > 其他分享 >【11月LeetCode组队打卡】Task5--UnionFind

【11月LeetCode组队打卡】Task5--UnionFind

时间:2023-11-26 23:00:12浏览次数:51  
标签:11 Task5 int 合并 -- 打卡 UF UnionFind

并查集

  • UnionFind

    一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题

    • 联通子图

    • 最小生成树Kruskal算法

    • 最近公共祖先LCA

  • 不交集:没有重复元素的集合

  • 合并Union:二变一

  • 查询Find:确定元素所属集合,通常返回集合内的一个代表元素

实现思路

基于数组

#include<iostream>
using namespace std;
const int maxn=1050;
int s[maxn+1];

//initialize
void init_UF( ){
    for(int i=1;i<=maxn;i++)//id--集合编号
        s[i]=i;//set集合元素
}

int find_UF(int x){
    return x==s[x]?x:find_UF(s[x]);
    //找到则返回id(父节点)没找到就递归
}

void union_UF(int x,int y){
    int x_fa=find_UF(x);
    int y_fa=find_UF(y);
    if(x_fa!=y_fa)//不是同一个父节点
        s[x]=s[y];//y父给x,则同父
}

int main(){
    int t,n,m,x,y;
    cin>>t;
    while(t--){
        cin>>n>>m;
        init_UF();
        for(int i=1;i<=m;i++){
            cin>>x>>y;
            union_UF(x,y);
        }
        int ans=0;
        for(int i=1;i<=n;i++){ //统计有多少个集
            if(s[i]=i)//代表元的个数
                ans++;
        }
        cout<<ans<<endl;
    }
    return 0;
}

路径压缩--查询的优化

完全压缩

按秩合并--合并的优化

标签:11,Task5,int,合并,--,打卡,UF,UnionFind
From: https://www.cnblogs.com/Weenz-y/p/17858166.html

相关文章

  • linux11.22课堂随笔
    第六章I/O重定向与管道6.1I/O重定向1.可以打开多个终端在终端界面输入tty查看终端编号2.输入date命令显示时间在date后面加>符号并指向date.txt文件那么结果就会写入date.txt文件3.在执行passwd命令改密码时系统会产生一个进程psaux|greppasswd可以查看PID4.ll/p......
  • 学习笔记11
    TCP/IP和网络编程TCP/IP协议TCP/IP是互联网的基础,TCP代表传输控制协议,IP代表互联网协议。TCP/IP的四层结构:应用层:向用户提供应用程序,如电子邮件、文件传输访问、远程登录等 sshping传输层提供应用程序间的通信,格式化信息流,提供可靠传输: TCPUDP网络层:进行网络连接的建立......
  • 学习笔记11
    第十三章TCP/IP和网络编程一、知识点归纳(一)网络编程简介如今,上网已成为日常生活的需要。虽然大多数人可能只把互联网作为一种信息收集、网上购物和社交媒体等的工具,但计算机科学的学生必须对互联网技术有一定的了解,并掌握一定的网络编程的技能。在本章中,我们将介绍TCP/IP网络......
  • 2023.11.26——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.filter拦截器技术;明日计划:学习......
  • 2023.11.26 一周总结
    比赛11.24lxldsRound170+[spjfailed]+40=110,Rank2。自评:T1不过过啥题啊。没想到能用网络流做。后面两道题有点过于神秘了。11.25hez联考\(25+20+0=45\),Rank5。自评:T1不过过啥题啊。T1属于「不那么规整的构造」。打表发现最劣操作次数是远小于\(O......
  • 每日总结-23.11.25
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>SWFPlayer</title></he......
  • 每日总结-23.1162
    packageInterface;importgongneng.BackGroundPanel;importjavax.imageio.ImageIO;importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.File;importjava.io.IOException;publiccl......
  • 11月26每日打卡
    今日做实验,实现flash交互源码:<%--CreatedbyIntelliJIDEA.User:zhangDate:2023/11/26Time:17:12TochangethistemplateuseFile|Settings|FileTemplates.--%><%@pagecontentType="text/html;charset=UTF-8"language="java"%......
  • 2023/11/26
    packagecom.xusheng.nosql.redis;importjava.util.Map;importredis.clients.jedis.Jedis;publicclassjedis_query{/***@paramxusheng*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubJe......
  • 湖人 121-115险胜骑士!詹姆斯距离40000分更进一步
    北京时间‬11月26日,NBA常规赛,湖人121-115险胜骑士,迎来了4连客之旅的开门红。本场比赛湖人湖人只有八名球员轮换出场,七人得分上双。詹姆斯重返克里夫兰,骑士在客队更衣室门口的数字屏幕‬上展现詹姆斯在2016年带领‬骑士夺冠时的照片,井打出“欢迎勒布朗回家”。 詹姆斯此战投篮23......