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

模板手机网站建设多少钱域名 备案 没有网站吗

模板手机网站建设多少钱,域名 备案 没有网站吗,wordpress apply_filter,桂林二手房【模板】并查集 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作。 输入格式 第一行包含两个整数 N , M N,M N,M ,表示共有 N N N 个元素和 M M M 个操作。 接下来 M M M 行,每行包含三个整数 Z i , X i , Y i Z_i,X_i,Y…

【模板】并查集

题目描述

如题,现在有一个并查集,你需要完成合并和查询操作。

输入格式

第一行包含两个整数 N , M N,M N,M ,表示共有 N N N 个元素和 M M M 个操作。

接下来 M M M 行,每行包含三个整数 Z i , X i , Y i Z_i,X_i,Y_i Zi,Xi,Yi

Z i = 1 Z_i=1 Zi=1 时,将 X i X_i Xi Y i Y_i Yi 所在的集合合并。

Z i = 2 Z_i=2 Zi=2 时,输出 X i X_i Xi Y i Y_i Yi 是否在同一集合内,是的输出
Y ;否则输出 N

输出格式

对于每一个 Z i = 2 Z_i=2 Zi=2 的操作,都有一行输出,每行包含一个大写字母,为 Y 或者 N

样例 #1

样例输入 #1

4 7
2 1 2
1 1 2
2 1 2
1 3 4
2 1 4
1 2 3
2 1 4

样例输出 #1

N
Y
N
Y

提示

对于 30 % 30\% 30% 的数据, N ≤ 10 N \le 10 N10 M ≤ 20 M \le 20 M20

对于 70 % 70\% 70% 的数据, N ≤ 100 N \le 100 N100 M ≤ 1 0 3 M \le 10^3 M103

对于 100 % 100\% 100% 的数据, 1 ≤ N ≤ 1 0 4 1\le N \le 10^4 1N104 1 ≤ M ≤ 2 × 1 0 5 1\le M \le 2\times 10^5 1M2×105 1 ≤ X i , Y i ≤ N 1 \le X_i, Y_i \le N 1Xi,YiN Z i ∈ { 1 , 2 } Z_i \in \{ 1, 2 \} Zi{1,2}


思路

首先,定义一个大小为 N N N的数组pre,用于记录每个元素的父节点。init函数用于初始化并查集,使得每个元素的父节点都是自己。

root函数用于查找元素 x x x的根节点,即在并查集中寻找 x x x所在集合的代表元素。这里采用路径压缩的方法,即在查找过程中,将 x x x到根节点的路径上的所有节点的父节点都直接设为根节点,从而优化后续查找效率。

merge函数用于合并两个集合,具体操作是找到两个元素的根节点,如果根节点不同,就将其中一个集合的根节点的父节点设置为另一个集合的根节点,从而实现两个集合的合并。

check函数用于检查两个元素是否在同一集合中,通过比较两个元素的根节点是否相同来判断。如果相同,输出"Y";如果不同,输出"N"。

main函数中,首先读取元素的数量 n n n和操作的数量 m m m,然后进行初始化。接下来,根据输入的操作类型,进行合并或者检查操作。如果操作类型为1,执行merge函数合并两个集合;如果操作类型为2,执行check函数检查两个元素是否在同一集合中。

使用路径压缩优化后,代码运行用时大幅度缩短。但是路径压缩会破坏树形结构。


AC代码

#include <iostream>
#define AUTHOR "HEX9CF"
using namespace std;const int N = 1e5 + 7;int pre[N];void init(int x) {for (int i = 1; i <= x; i++) {pre[i] = i;}
}int root(int x) {int i = x;while (pre[i] != i) {i = pre[i];}return pre[x] = i;
}void merge(int x, int y) {x = root(x);y = root(y);if (x == y) {return;}pre[x] = y;
}void check(int x, int y) {x = root(x);y = root(y);if (x == y) {printf("Y\n");} else {printf("N\n");}
}int main() {int n, m;scanf("%d %d", &n, &m);init(n);while (m--) {int z, x, y;scanf("%d %d %d", &z, &x, &y);if (z == 1) {merge(x, y);} else {check(x, y);}}return 0;
}
http://www.yayakq.cn/news/867936/

相关文章:

  • 站长网网站模板新竹网站
  • 著名建站公司系统开发报价清单明细
  • 深圳微商城网站制作价格网站建设代码编译的问题及解决方案
  • wordpress网站防采集公司网站建设费入哪个科目
  • 配置wordpress七牛南通做网站优化哪家好
  • 正规的环保行业网站开发谁给个好网站
  • 晋城客运东站网站开发京东联盟网站推广位怎么做
  • 做棋牌网站合法课程网站如何建设方案
  • 淄博专业做网站做网站很忙吗
  • 网站开发和编程的联系做网站编程语言
  • 化隆县公司网站建设上海设计公司电话
  • 网站建设外包发展情况东莞最好的网站
  • 蓟州网站建设青海wap网站建设哪家好
  • 十大景观设计网站18种禁用软件黄app
  • 在线支付 网站模板wordpress 邮箱插件
  • 网络游戏美术设计专业seo引擎优化怎么做
  • 网站建设费用包括哪些深圳公司广告片制作
  • 网站建设公司怎么盈利中英繁网站
  • 上海网站推广有哪些防城港网站开发
  • 商业网站需要的网站是用dw做的吗
  • 专业信息门户网站建设新开传奇网站排行
  • 域名没备案wordpress不能编辑文章google seo 营销网站
  • 夸克建站系统源码下载制作公司网站多少钱
  • 网站代码输入完成之后要怎么做丹徒网站建设服务
  • 网站建设的策划上网行为管理
  • 搭建网站知识郑州看妇科最好的医院是哪里
  • 河北涿州市网站建设移动互联网时代的渠道模式创新
  • 本地推广找哪些网站深圳建站公司推荐
  • 专做恐怖片的网站宁波制作网站哪个好
  • acg大神做的网站北京网站制作长沙