当前位置: 首页 > news >正文

电子商务网站推广的意义南宁企业建站

电子商务网站推广的意义,南宁企业建站,w7系统那个网站做的好,购物网站建设需要什么资质文章目录 837. 连通块中点的数量题目描述维护size的并查集 837. 连通块中点的数量 题目描述 给定一个包含 n 个点(编号为 1~n)的无向图,初始时图中没有边。 现在要进行 m 个操作,操作共有三种: C a b&a…

文章目录

  • 837. 连通块中点的数量
    • 题目描述
    • 维护size的并查集

837. 连通块中点的数量

题目描述

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

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

  1. C a b,在点 a 和点 b 之间连一条边,a 和 b 可能相等;
  2. Q1 a b,询问点 a 和点 b 是否在同一个连通块中,a 和 b 可能相等;
  3. 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

维护size的并查集

#include<bits/stdc++.h> // 包含大多数标准库
using namespace std;const int z=1e5+10; // 定义常数z为最大点数加10,用于数组大小int fa[z], size[z]; // fa数组存储每个点的父节点,size数组存储每个连通块的大小// 并查集的查找函数,用于查找元素i的根节点,并执行路径压缩
int find(int i) {if(fa[i] != i) fa[i] = find(fa[i]); // 路径压缩,递归地将fa[i]更新为根节点return fa[i]; // 返回根节点
}// 主函数
int main() {int n, m; // n表示点的数量,m表示操作的数量cin >> n >> m; // 输入点的数量和操作的数量// 初始化并查集for (int i = 1; i <= n; i++) {fa[i] = i; // 每个点的父节点初始化为自己size[i] = 1; // 每个点所在连通块的大小初始化为1}// 循环处理m个操作while (m--) {string s; // 存储操作类型cin >> s; // 输入操作类型// 根据不同的操作类型进行操作if(s == "C") { // 连接操作int a, b;cin >> a >> b; // 输入要连接的两个点的编号if(find(a) == find(b)) continue; // 如果已经在同一个连通块中,无需操作// 否则,合并两个连通块size[find(b)] += size[find(a)]; // 更新根节点的连通块大小fa[find(a)] = find(b); // 将一个点的根节点连接到另一个点的根节点} else if(s == "Q1") { // 查询操作1,询问两个点是否连通int a, b;cin >> a >> b; // 输入要查询的两个点的编号if(find(a) == find(b)) cout << "Yes" << endl; // 如果根节点相同,输出Yeselse cout << "No" << endl; // 否则,输出No} else { // 查询操作2,询问连通块的大小int a;cin >> a; // 输入要查询的点的编号cout << size[find(a)] << endl; // 输出该点所在连通块的大小}}return 0;
}

在这段代码中,主要用到了两个全局数组fasizefa数组用来表示每个节点的父节点,初始化时每个节点都是自己的父节点。size数组用来表示以当前节点为根节点的连通块的大小,初始化为1。每次合并连通块时,会更新这两个数组的信息。

find函数是并查集的核心,用于查找节点的根节点,并在这个过程中进行路径压缩。

main函数中,代码首先接收输入的节点数和操作数,然后通过循环处理每一条操作指令。指令分为三种类型,分别对应代码中的三个分支。

  • C操作将两个节点连接在一起,如果它们不在同一个连通块中,会合并它们所在的连通块,并更新连通块大小。
  • Q1操作判断两个节点是否在同一个连通块中,输出结果。
  • Q2操作输出给定节点所在连通块的大小。

这个程序对应了题目描述中的需求,它可以有效地处理大量的连通性查询和连通块大小查询。

http://www.yayakq.cn/news/821104/

相关文章:

  • 岳阳网站搭建软件源码购买一般在哪个网站
  • 域名怎么进入网站平面设计学费多少钱
  • 微信公众号可以做微网站wordpress标签链接
  • 和孕妇做网站芷江建设工程招投标网站
  • 太仓网站制作哪家好汕头建站价格
  • 俄文网站制作wordpress文章自动发布功能
  • 英文网站怎么切换中文微网站是自己做可以不
  • 网站建设 需要准备材料旅游电子商务网站建设费用
  • 怎么编写一个网站湖北省建设厅官方网站证书查询
  • 遵义网站建设托管公司wordpress 开源协议
  • 网站建设好后 如何验收智达世通建设集团有限公司网站
  • 内蒙古城乡住房建设厅网站wordpress yeti
  • 没有网站可以做域名解析吗新余网站设计
  • 大连市营商环境建设局门户网站银座网上购物商城
  • 福州企业建站系统模板做视频图片博客网站有哪些
  • 网站推广多少钱怎么查看网站dns
  • 手机网站怎么备案响应式自适应网站模板
  • 做淘宝客网站性质php网站源代码
  • 高端网站开发案例展示常州天宁区做网站公司
  • 公司网站忘了怎么做网络营销推广岗位有哪些
  • 新乡平原新区建设局网站网站建设的误区
  • 网站建设客户说没用北京网站设计策划公司
  • 网站优化如何做pc指数设计师用的素材网站有哪些
  • 骨科医院网站优化服务商jsp怎么做购物网站
  • 国内家居行业网站开发尚海整装总店地址
  • 律师做网站有用行业门户网站有哪些
  • pc网站同步手机网站壹像素网站
  • 做网站免费建设网站公司那家好
  • 做分析图用的地图网站公司官网制作百度
  • 上海网站建设领导品牌神宜建设公司官网