AcWing并查集

news2024/9/24 1:21:41

建议先看这个
Bilibili------------------>图论——并查集(详细版)
在这里插入图片描述
其实M 1 2就是把1的祖先改成了2,然后M 3 4就是把3的祖先改成了4,然后查询这两数1,2的祖先是不是同一个,3,4的祖先是不是同一个,1,3的祖先是不是同一个,贼拉简单!至于并查集优化提到的路径压缩,其实也很简单,

int find(int x){
	//每层调用,不同层的fa都被修改1次,会修改f[x]和f[f[x]]的祖先指向,
	//视频链接里面有说
    if(fa[x]!=x) {
        fa[x]=find(fa[x]);
    }
    return fa[x];
}

在这里插入图片描述

#include<iostream>
#include<string>
#define LEN 100086
using namespace std;
string op;
int a,b,n,m,fa[LEN];
int find(int x){
    if(fa[x]!=x) {
        fa[x]=find(fa[x]);
    }
    return fa[x];
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;++i)
    {
        fa[i]=i;
    }
    while(m--){
        cin>>op>>a>>b;
        if(op=="M"){
            int idx_a=find(a);
            int idx_b=find(b);
            fa[idx_a]=idx_b;
        }else if(op=="Q"){
            if(find(a)==find(b)) cout<<"Yes"<<endl;
            else cout<<"No"<<endl;
        }
    }
    return 0;
}

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

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

相关文章

【期货】收盘点评。昨天说的,p2409棕榈油在今天或者周一会走出行情

收盘点评 昨天说的&#xff0c;p2409棕榈油在今天或者周一会走出行情。事实就是如此。震荡了几天了&#xff0c;波幅不大的来回震荡&#xff0c;其实主力是不想震荡的&#xff0c;但是不震荡自己的货和行情走不出来。所以我昨天就说&#xff0c;应该就是这一两天会走出一波小行…

⑤【从0制作自己的ros导航小车:上、下位机通信篇】上、下位机串口DMA通信

从0制作自己的ros导航小车 前言一、准备工作二、下位机端&#xff08;STM32&#xff09;三、上位机端&#xff08;旭日x3派&#xff09;四、测试 系列文章&#xff1a; ①【从0制作自己的ros导航小车&#xff1a;介绍及准备】 ②【从0制作自己的ros导航小车&#xff1a;下位机篇…

一站式解决方案:打造无缝连接的跨渠道客户服务体验

在当今这个数字化时代&#xff0c;客户与企业之间的互动已不再局限于单一渠道。从社交媒体、在线聊天、电子邮件到电话热线&#xff0c;甚至是实体店面&#xff0c;客户期望能够随时随地、无缝切换地获得一致且高效的服务体验。因此&#xff0c;构建一站式解决方案&#xff0c;…

商城系统审计代码审计

1 开源组件通用性漏洞审计 1.1 fastjson漏洞审计与验证 1.1.1 相关知识 Fastjson是Alibaba开发的Java语言编写的高性能JSON库,用于将数据在JSON和Java对 象之间相互转换。 Fastjson反序列化漏洞简单来说是出现在将JSON数据反序列化过程中出现的漏洞。 攻击者可以传入一个恶…

算法小白的进阶之路(力扣6~8)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

对象属性值对比(支持复杂对象)

文章目录 前言一、如何对比二、开始编码三、使用结果示例总结 前言 需求如下&#xff1a; 对比两个bean中的内容,返回其中属性的值不一致的完整信息,包括: 属性 新值 旧值 一、如何对比 例如我有一个这的类型: public class Tel {private String name;private String tel; …

学习笔记第十七天

1.链表 1.1链表尾插 void push_back(struct Node *pHead,int n)//尾插 {if(isEmpty(pHead)){push_front(pHead,n);}else{struct Node *p pHead->next; while(p->next !NULL){p p->next;}struct Node *pNew malloc(sizeof(struct Node));p->nextpNew;pNew->n…

C++ bind复杂回调逻辑分析

回调函数基本知识回顾 回调函数是什么 函数指针或者函数对象作为参数传递给另一个函数的机制&#xff0c;当某个事件发生的时候&#xff0c;系统会自动的调用这些函数进行处理事件驱动模型中作用&#xff0c;回调函数则被用于处理I/O事件&#xff0c;通常用来读写异常等事件 bi…

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——2Yolo使用之ONNX模型准备

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——2Yolo使用之ONNX模型准备 ​ 大家好&#xff0c;因为板端BPU环境&#xff0c;可以加速目标检测的速度&#xff0c;所以今天在此先给大家带来如何准备一个模型&#xff0c;下一期会给大家带来如何在板端部…

如何做一个惊艳领导和客户的原型?

在产品开发过程中&#xff0c;原型设计是验证设计想法、提升用户体验的重要环节。Axure作为一款业界领先的原型设计工具&#xff0c;凭借其强大的交互设计和丰富的功能&#xff0c;赢得了全球设计师和开发者的信赖。而Axure的高效交互元件库&#xff0c;则如同一本字典或说明书…

将YOLOv8模型从PyTorch的.pt格式转换为OpenVINO支持的IR格式

OpenVINO是Open Visual Inference & Neural Network Optimization工具包的缩写&#xff0c;是一个用于优化和部署AI推理模型的综合工具包。OpenVINO支持CPU、GPU和NPU设备。 OpenVINO的优势: (1).性能&#xff1a;OpenVINO利用英特尔CPU、集成和独立GPU以及FPGA的强大功能提…

原生IP节点是什么意思?和socks5节点有什么区别?

在了解这两种代理节点前&#xff0c;我们首先要了解&#xff1a;节点是什么&#xff1f; 首先&#xff0c;在电信网络当中&#xff0c;一个节点是一个连接点。表示一个再分发点又或者是一个通信端点。节点的定义依赖于所提及的网络和协议层。一个物理网络节点是一个连接到网络…

深度强化学习:穿越智能迷雾,探索AI新纪元

近年来&#xff0c;深度强化学习成为关注的热点。在自动驾驶、棋牌游戏、分子重排和机器人等领域&#xff0c;计算机程序能够通过强化学习&#xff0c;理解以前被视为超级困难的问题&#xff0c;取得了令人瞩目的成果。在围棋比赛中&#xff0c;AlphaGo接连战胜樊麾、李世石和柯…

使用 SpringBoot + 虚拟线程将服务性能提升几百倍

虚拟线程简介 虚拟线程是 Java 平台的一项创新特性。虚拟线程是一种轻量级的线程实现,它在操作系统层面并不对应真实的内核线程,而是由 JVM 进行管理和调度。这使得可以在不消耗大量系统资源的情况下创建大量的线程,从而能够更高效地处理并发任务。 虚拟线程与普通线程的区…

【数学建模】——【A题 信用风险识别问题】全面解析

目录 1.题目 2.解答分析 问题1&#xff1a;指标筛选 1.1 问题背景 1.2 数据预处理 1.3 特征选择方法 1.4 多重共线性检测 1.5 实现步骤 问题2&#xff1a;信用评分模型 2.1 问题背景 2.2 数据分割 2.3 处理不平衡数据 2.4 模型选择与理由 问题3&#xff1a;模型对…

『 Linux 』线程池与 POSIX 线程的封装编码实现

文章目录 线程池概念线程池的编码实现线程池的测试参考代码 线程的封装使用测试封装后的线程参考代码 线程池概念 池化技术是一种资源管理方法,通过预先创建和管理一组资源以便在需要使用时快速分配这些资源; 线程池是池化技术的一种典型应用; 资源分配 在线程池中预先创建一定…

【python015】常见成熟AI-图像识别场景算法清单(已更新)

1.欢迎点赞、关注、批评、指正,互三走起来,小手动起来! 【python015】常见成熟AI-图像识别场景算法清单及代码【python015】常见成熟AI-图像识别场景算法清单及代码【python015】常见成熟AI-图像识别场景算法清单及代码文章目录 1.背景介绍2.`Python`版数据爬取、解析代码2.…

鸿蒙应用框架开发【画中画效果实现】 UI框架

画中画效果实现 介绍 本示例通过kit.ArkUI、kit.MediaKit等接口&#xff0c;实现了视频播放、手动和自动拉起画中画、画中画窗口控制视频播放和暂停等功能。 效果预览 使用说明 在主界面&#xff0c;可以点击对应视频按钮进入视频播放页面&#xff1b;视频播放页面点击开启…

三星One UI 7.0引入苹果的几大特色功能,iOS用户都羡慕哭了

在智能手机操作系统的创新之路上&#xff0c;苹果iOS系统的Dynamic Island和Live Activities功能无疑为用户带来了全新的交互体验。 现在&#xff0c;三星One UI 7.0系列的即将发布&#xff0c;似乎预示着安卓阵营也将迎头赶上&#xff0c;甚至可能在某些方面超越苹果。以下是…

AcWing-AcWing 837. 连通块中点的数量

在原来并查集的基础上增加一个Size数组&#xff0c;Size的初始化是必须先每个元素初始化为1 Size只对根节点有效&#xff0c;比如Size[find(1)]就是找1的祖先节点&#xff0c;然后访问祖先节点的个数。当我们联通a点和b点时&#xff0c;如果已经是联通状态了&#xff0c;那么无…