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

视频 播放网站怎么做企业如何进行品牌推广

视频 播放网站怎么做,企业如何进行品牌推广,系统ui设计,爱网聊的人【模板】并查集 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作。 输入格式 第一行包含两个整数 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.ds6.com.cn/news/39011.html

相关文章:

  • 电商网站开发计划书网址推荐
  • 东莞网站推广排名seo网络推广师招聘
  • 品牌的手机网站制作爱链网中可以进行链接买卖
  • 网上服务大厅登录宁波seo外包服务商
  • 不用服务器做视频网站吗郑州计算机培训机构哪个最好
  • php网站怎么注入关键词优化是怎么做的
  • 在什么网站做公务员题目奇零seo赚钱培训
  • 网站建设毕业实习报告营销策略4p分析怎么写
  • 制作彩页用什么软件宁波品牌网站推广优化
  • 柳州做网站价格重庆百度竞价推广
  • 新媒体营销和网络营销合肥seo网站管理
  • pc 手机网站建设湖南平台网站建设制作
  • 贵州做网站的公司有哪些网站推广的基本方法是
  • 套路网站怎么做的seo网站排名优化培训教程
  • html5能做动态网站吗北京搜索引擎优化管理专员
  • 大兴网站定制开发厦门百度关键词优化
  • 河南手机网站建设多少钱org域名注册
  • 网站开发前期需要啥百度知道下载
  • 查公司的网站有哪些最好的bt种子搜索神器
  • 网站系统建设与管理镇江seo公司
  • jsp网站开发教程seo网站排名优化服务
  • 基于java的家纺网站设计毕业论文百度荤seo公司
  • 让iis做跳转网站网络营销首先要进行
  • 做的比较好的旅游网站广州线上教学
  • 国内做企业英文网站用什么cms免费的网站申请
  • seo云优化软件破解版seo助手
  • 免费1级做爰片免费网站中视频自媒体账号注册下载
  • 宿迁网站建设如何创建自己的小程序
  • 做网站网络合同网络营销策略有哪五种
  • 校园社交网站怎么做百度商业平台