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

网站功能定制合同济南做网站公司哪家好

网站功能定制合同,济南做网站公司哪家好,网站建设 简单动态网站建设,做网站用的编程工具并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题.一些常见的用途有求连通子图,求最小生成树Kruskal算法和最近公共祖先(LCA)等. 并查集的基本操作主要有: .1.初始化 2.查询find 3.合并union 一般我们都会采用路径压缩 这样…

并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题.一些常见的用途有求连通子图,求最小生成树Kruskal算法和最近公共祖先(LCA)等.

并查集的基本操作主要有:

.1.初始化

2.查询find

3.合并union

 

一般我们都会采用路径压缩 这样效率更加高  

 

#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
#define MAXN 20001
int fa[MAXN];
void init(int n) {for (int i = 1; i <= n; i++) {fa[i] = i;}//初始化
}
int find(int x) {if (x == fa[x]) {return x;}else {fa[x] = find(fa[x]);//路径压缩 也就是一直找到祖先return fa[x];}
}
void unionn(int i, int j) {int i_fa = find(i);//找到i的祖先int j_fa = find(j);//找到j的祖先fa[i_fa] = j_fa;//i的祖先指向j的祖先 反过来也可以
}
int main() {int n, m, x, y, q;scanf("%d", &n);init(n);scanf("%d", &m);for (int i = 1; i <= m; i++) {scanf("%d%d", &x, &y);unionn(x, y);}scanf("%d", &q);for (int i = 1; i <= q; i++) {scanf("%d%d", &x, &y);if (find(x) == find(y)) {printf("Yes\n");}else {printf("No\n");}}return 0;
}

或者这样写 

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;const int N = 20010;int n, m;
int p[N];
int find(int x) {if (p[x] != x)p[x] = find(p[x]);return p[x];
}
int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) p[i] = i;while (m--) {int a, b;scanf("%d%d", &a, &b);p[find(a)] = find(b);//合并 a->b}scanf("%d,&m");while (m--) {int a, b;scanf("%d%d", &a, &b);if (find(a) == find(b))puts("yes");else puts("no");}return 0;}

 

#include<iostream>
using namespace std;const int N = 10010;int n, m;
int p[N];int find(int x) {if (p[x] != x)p[x] = find(p[x]);return p[x];
}
int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) p[i] = i;char op[2];//读入操作的字符串  因为字符串后面有'\0'所以要存多一位while (m--) {int a, b;scanf("%s%d%d",&op ,&a, &b);if(*op=='M')p[find(a)] = find(b);//合并else {if (find(a) == find(b)) {puts("Yes");}else {puts("No");}}}return 0;
}

#include<iostream>
using namespace std;
const int N = 10010;int n, m;
int p[N], s[N];int find(int x) {if (p[x] != x)p[x] = find(p[x]);return p[x];
}
int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) p[i] = i, s[i] = 1;while (m--){char op[3];int a, b;scanf("%s", &op);if (*op == 'C') {scanf("%d%d", &a, &b);a = find(a), b = find(b);if (a != b) {//如果相等证明他们在同一个祖先中s[b] += s[a];p[a] = b;}else if (*op == 'Q1') {scanf("%d%d", &a, &b);if (find(a) == find(b)) {puts("Yes\n");}else {puts("No\n");}}else {scanf("%d", &a);printf("%d\n", s[find(a)]);}}}return 0;
}

 

http://www.ds6.com.cn/news/85648.html

相关文章:

  • 哪里有服务好的网站建设公司百度排名优化工具
  • 自己做软件 做网站需要学会哪些怎么自己做一个小程序
  • 成都网站建设 推广行武汉seo学徒
  • 网页html模板代码优化设计官网
  • 网站开发攻略亚马逊关键词优化软件
  • 网站页面制作视频百度还原
  • doku做网站怎样打开网站
  • 学做网站开发吗百度产品推广
  • b2b免费信息发布平台惠州seo推广外包
  • 本地建网站的详细步骤东莞营销外包公司
  • 正规网站建设费用湖北短视频seo营销
  • 扬州市建筑信息平台许昌seo公司
  • 网站建设策划书正安县网站seo优化排名
  • 安徽专业做网站的公司长沙网络公司最新消息
  • 电商网站的模块女教师遭网课入侵直播录屏曝光i
  • 无锡做网站baidu百度搜索排名规则
  • 福州网站建设制作品牌企业电商平台怎么推广
  • 网站如何盈利谷歌seo服务公司
  • 汝阳网站开发最新新闻今天最新新闻
  • 郑州企业网站优化多少钱武汉seo网站优化技巧
  • 昆明电子商务网站建设微信小程序开发文档
  • wordpress 文章转义哪个网站学seo是免费的
  • 美国网站注册邮箱seo建站网络公司
  • 金融网站开发文档廊坊今日头条新闻
  • 河南省南阳疫情最新情况北京seo关键词排名优化
  • 做网站怎么实现在线支付比较成功的网络营销案例
  • 我的网站怎么不能搜索星链seo管理
  • 潍坊网站设计公司优化怎么做
  • 泉州市做网站宝鸡seo优化公司
  • 有哪些好的做h5的网站站长之家 seo查询