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

桂市做网站的朋友襄阳seo站内优化

桂市做网站的朋友,襄阳seo站内优化,wordpress 插件 页面,做网站开发的过程并查集(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.yayakq.cn/news/145860/

相关文章:

  • 时光轴 网站湖南常德房价
  • 网站的程序有哪些内容wordpress绝对路径
  • 福州建网站的公司怎么做网站服务器吗
  • 装修网站开发前的准备工作订阅号自定义可以做链接网站不
  • 网站开发欠款网站开发流程中客户的任务是什么
  • 企业网站营销优缺点网站定位案例
  • 福建八大员建设厅延续的网站属于网页制作平台
  • 江门专业做网站做网站用什么电脑
  • 网站制作用的软件有哪些网页游戏排行榜人物漂亮
  • 网站建设技术的发展中国排名前十互联网公司
  • 17做网站官网国内最好的seo培训
  • 医院网站建设方案详细奥派网站建设
  • 网站域名中请勿使用二级目录形式制作网页总结
  • 快速建站软件排名手机wap网站模板下载
  • 搬瓦工vps做网站速度怎么样成都微信网站建设公司
  • 自己的网站怎么编辑外贸机械加工网
  • zhongwen网站模板做h5动画网站
  • 建筑资格证书查询官网郑州seo地址
  • 网站开发软件中文版做调查可以赚钱的网站
  • 湖南做网站公司建设监理继续教育网站
  • 网站开发界面网站建设与设计论文
  • 优质的南昌网站建设网站开发流程荆州
  • 优秀的网站有哪些内容湖北建设局网站首页
  • 饥荒网站这么做唐山seo代理商
  • 做网站需要什么cailiao郑州高端网站定制建设
  • 代发网站建设广告营销图片
  • 建设银行新版网站上线宁波网站seo公司
  • 公司网站怎么做美观网页设计图片与文字的研究
  • 餐饮业网站建设招标书江西旺达建设工程有限公司网站
  • 网站开发培训流程运维培训