湖南营销型网站建设 j磐石网络/短视频入口seo

湖南营销型网站建设 j磐石网络,短视频入口seo,上海网站建设报价方案,网站服务建设公司题目 给定一个包含 n 个点(编号为 1∼n)的无向图,初始时图中没有边。 现在要进行 m 个操作,操作共有三种: C a b,在点 a 和点 b 之间连一条边,a和 b 可能相等;Q1 a b,询问…

题目

给定一个包含 n 个点(编号为 1∼n)的无向图,初始时图中没有边。

现在要进行 m 个操作,操作共有三种:

C a b,在点 a 和点 b 之间连一条边,a和 b 可能相等;Q1 a b,询问点 a 和点 b 是否在同一个连通块中,a 和 b
可能相等; Q2 a,询问点 a 所在连通块中点的数量;

输入格式

第一行输入整数 n 和 m。

接下来 m 行,每行包含一个操作指令,指令为 C a b,Q1 a b 或 Q2 a 中的一种。

输出格式

对于每个询问指令 Q1 a b,如果 a 和 b 在同一个连通块中,则输出 Yes,否则输出 No。

对于每个询问指令 Q2 a,输出一个整数表示点 a 所在连通块中点的数量

每个结果占一行。

数据范围

1≤n,m≤105

输入样例:

5 5

C 1 2

Q1 1 2

Q2 1

C 2 5

Q2 5

输出样例:

Yes

2

3

来源:acwing算法基础837. 连通块中点的数量


思路(注意事项)


纯代码

#include<bits/stdc++.h>
using namespace std;const int N = 100010;
int p[N], si[N];int find(int x)
{if (p[x] != x) p[x] = find(p[x]);return p[x];
}
int main()
{int n, m;cin >> n >> m;for (int i = 1; i <= n; i++) {	p[i] = i;si[i] = 1;}while (m --){char c[2];int a, b;scanf("%s", c);if (c[0] == 'C') {	scanf("%d%d", &a, &b);if (find(a) == find(b)) continue;si[find(b)] += si[find(a)];p[find(a)] = find(b);}else if (c[1] == '1'){scanf("%d%d", &a, &b);if (find(a) == find(b)) cout << "Yes" << endl;else cout << "No" << endl;}else {scanf("%d", &a);cout << si[find(a)] << endl;}}return 0; 
}

题解(带注释)

#include<bits/stdc++.h>
using namespace std;const int N = 100010; // 定义最大节点数
int p[N]; // 并查集数组,p[i] 表示节点 i 的父节点
int si[N]; // 存储每个集合的大小,si[i] 表示以 i 为根节点的集合的大小// 查找函数,用于查找节点 x 的根节点,并进行路径压缩
int find(int x)
{// 如果 x 不是根节点,递归查找其父节点的根节点,并进行路径压缩if (p[x] != x) p[x] = find(p[x]);// 返回 x 的根节点return p[x];
}int main()
{int n, m; // n 表示节点数,m 表示操作数cin >> n >> m; // 输入节点数和操作数// 初始化并查集for (int i = 1; i <= n; i++) {	p[i] = i; // 每个节点的父节点初始化为自己si[i] = 1; // 每个集合的大小初始化为 1}// 处理每个操作while (m --){char c[2]; // 操作类型int a, b; // 操作涉及的两个节点scanf("%s", c); // 输入操作类型if (c[0] == 'C') // 如果是合并操作{	scanf("%d%d", &a, &b); // 输入要合并的两个节点if (find(a) == find(b)) continue; // 如果已经在同一个集合中,跳过si[find(b)] += si[find(a)]; // 将 a 所在集合的大小加到 b 所在集合的大小上p[find(a)] = find(b); // 将 a 所在集合的根节点的父节点设置为 b 所在集合的根节点}else if (c[1] == '1') // 如果是查询操作(查询两个节点是否在同一个集合中){scanf("%d%d", &a, &b); // 输入要查询的两个节点if (find(a) == find(b)) cout << "Yes" << endl; // 如果在同一个集合中,输出 Yeselse cout << "No" << endl; // 否则输出 No}else // 如果是查询操作(查询某个节点所在集合的大小){scanf("%d", &a); // 输入要查询的节点cout << si[find(a)] << endl; // 输出该节点所在集合的大小}}return 0; 
}

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

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

相关文章

uniapp-原生android插件开发摘要

uni-app在App侧的原生扩展插件&#xff0c;支持使用java、object-c等原生语言编写&#xff0c;从HBuilderX 3.6起&#xff0c;新增支持了使用uts来开发原生插件。 基础项目 UniPlugin-Hello-AS工程请在App离线SDK中查找 基础项目(App离线SDK)已经配置好了自定义插件所需要的…

Idea 中 Project Structure简介

在 IntelliJ IDEA 中&#xff0c;Project Structure&#xff08;项目结构&#xff09;对话框是一个非常重要的配置界面&#xff0c;它允许你对项目的各个方面进行详细的设置和管理。下面将详细介绍 Project Structure 中各个主要部分的功能和用途。 1. Project&#xff08;项…

Linux:进程概念

目录 1 冯诺依曼体系 2 操作系统(Operator System) 3 如何理解管理 3.1计算机管理硬件 3.2 管理逻辑图 3.3 怎样管理 4 什么是进程&#xff1f; 5 查看进程 5.1 ps ajx显示所有进程信息 5.2 /proc(内存文件系统) 5.2.1 ls /proc/PID 5.2.2 ls /proc/PID -al ​ 5…

Conda 全面使用指南:从基础操作到高级优化

一、Conda 简介 Conda 是一个开源的包、依赖项和环境管理系统&#xff0c;可在 Windows、macOS 和 Linux 上运行。它最初是为 Python 程序创建的&#xff0c;但可以打包和分发任何语言的软件。Conda 有 Anaconda 和 Miniconda 两种发行版&#xff0c;Anaconda 包含大量常用的数…

计算机毕设JAVA——某高校宿舍管理系统(基于SpringBoot+Vue前后端分离的项目)

文章目录 概要项目演示图片系统架构技术运行环境系统功能简介 概要 网络上许多计算机毕设项目开发前端界面设计复杂、不美观&#xff0c;而且功能结构十分单一&#xff0c;存在很多雷同的项目&#xff1a;不同的项目基本上就是套用固定模板&#xff0c;换个颜色、改个文字&…

【Redis】在Java中以及Spring环境下操作Redis

Java环境下&#xff1a; 1.创建maven 项目 2.导入依赖 <!-- redis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.3.2</version></dependency> 此处使用的是Jedis&…

橙心同步助手更新,,支持博客园、头条和语雀

文章同步助手v1.5版本开发完成了&#xff0c;新增了博客园、头条和语雀同步支持。 使用方式和前几个版本一致&#xff0c;都需要先登录上对应平台的账号&#xff0c;再进行同步。 语雀因为可以有不同的知识库&#xff0c;所以同步的时候需要指定对应的知识库&#xff0c;才能…

如何把网络ip改为动态:全面指南

在数字化时代&#xff0c;网络IP地址作为设备在网络中的唯一标识&#xff0c;扮演着至关重要的角色。随着网络环境的不断变化&#xff0c;静态IP地址的局限性逐渐显现&#xff0c;而动态IP地址则因其灵活性和安全性受到越来越多用户的青睐。那么&#xff0c;如何把网络IP改为动…

IDEA集成DeepSeek,通过离线安装解决无法安装Proxy AI插件问题

文章目录 引言一、安装Proxy AI1.1 在线安装Proxy AI1.2 离线安装Proxy AI 二、Proxy AI中配置DeepSeek2.1 配置本地部署的DeepSeek&#xff08;Ollama方式&#xff09;2.2 通过第三方服务商提供的API进行配置 三、效果测试 引言 许多开发者尝试通过安装Proxy AI等插件将AI能力…

八. Spring Boot2 整合连接 Redis(超详细剖析)

八. Spring Boot2 整合连接 Redis(超详细剖析) 文章目录 八. Spring Boot2 整合连接 Redis(超详细剖析)2. 注意事项和细节3. 最后&#xff1a; 在 springboot 中 , 整合 redis 可以通过 RedisTemplate 完成对 redis 的操作, 包括设置数据/获取数据 比如添加和读取数据 具体…

easyExcel使用案例有代码

easyExcel 入门,完成web的excel文件创建和导出 easyExcel官网 EasyExcel 的主要特点如下&#xff1a; 1、高性能&#xff1a;EasyExcel 采用了异步导入导出的方式&#xff0c;并且底层使用 NIO 技术实现&#xff0c;使得其在导入导出大数据量时的性能非常高效。 2、易于使…

【网络安全 | 渗透测试】GraphQL精讲二:发现API漏洞

未经许可,不得转载。 推荐阅读:【网络安全 | 渗透测试】GraphQL精讲一:基础知识 文章目录 GraphQL API 漏洞寻找 GraphQL 端点通用查询常见的端点名称请求方法初步测试利用未清理的参数发现模式信息使用 introspection探测 introspection运行完整的 introspection 查询可视化…

新建菜单项的创建之CmpGetValueListFromCache函数分析

第一部分&#xff1a; PCELL_DATA CmpGetValueListFromCache( IN PHHIVE Hive, IN PCACHED_CHILD_LIST ChildList, OUT BOOLEAN *IndexCached, OUT PHCELL_INDEX ValueListToRelease ) 0: kd> dv KeyControlBlock 0xe1…

神经网络 - 激活函数(ReLU 函数)

一、ReLU函数&#xff1a; ReLU(Rectified Linear Unit&#xff0c;修正线性单元)&#xff0c;也叫 Rectifier 函数 &#xff0c;是目前深度神经网络中经常使用的激活函数&#xff0c;ReLU 实际上是一个斜坡(ramp)函数&#xff0c;其定义为&#xff1a; 也即&#xff1a; Re…

Spring Boot环境配置

一、Java开发环境 确保你的计算机已经安装了Java Development Kit&#xff08;JDK&#xff09;。建议使用JDK 17&#xff0c;可以从Oracle官方网站上下载并安装。 1.下载及配置环境变量 &#xff08;1&#xff09;下载JDK&#xff1a;官网下载 &#xff08;2&#xff09;运…

conda env remove与conda remove

在 Conda 中&#xff0c;删除环境的两种常用命令是 conda env remove --name ryu 和 conda remove -n ryu --all。它们的核心功能相同&#xff08;删除指定名称的 Conda 环境&#xff09;&#xff0c;但存在细微差异。以下是详细解释&#xff1a; 1. 命令对比 命令说明conda e…

6.6.5 SQL访问控制

文章目录 GRANT授予权限REVOKE回收权限 GRANT授予权限 GRANT语句可以给用户授予权限&#xff0c;基本格式是GRANT 权限 TO 用户。在授权时&#xff0c;WITH GRANT OPTION是可选项&#xff0c;有此句话&#xff0c;被授予权限的用户还能把权限赋给其他用户。 REVOKE回收权限 RE…

[免费]SpringBoot公益众筹爱心捐赠系统【论文+源码+SQL脚本】

大家好&#xff0c;我是老师&#xff0c;看到一个不错的SpringBoot公益众筹爱心捐赠系统&#xff0c;分享下哈。 项目介绍 公益捐助平台的发展背景可以追溯到几十年前&#xff0c;当时人们已经开始通过各种渠道进行公益捐助。随着互联网的普及&#xff0c;本文旨在探讨公益事业…

[Windows] 免费电脑控制手机软件 极限投屏_正式版_3.0.1 (QtScrcpy作者开发)

[Windows] 极限投屏_正式版 链接&#xff1a;https://pan.xunlei.com/s/VOKJf8Z1u5z-cHcTsRpSd89tA1?pwdu5ub# 新增功能(Future)&#xff1a; 支持安卓14(Supports Android 14)提高投屏成功率(Improve the success rate of mirror)加快投屏速度(Accelerate screen mirrorin…

vite+react+ts如何集成redux状态管理工具,实现持久化缓存

1.安装插件 这里的redux-persist--进行数据的持久化缓存&#xff0c;确保页面刷新数据不会丢失 yarn add react-redux^9.2.0 redux-persist^6.0.0 reduxjs/toolkit^2.5.1 2.创建仓库文件夹 在项目的src文件夹下创建名为store的文件夹&#xff0c;里面的具体文件如下 featur…