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

睡不着偷偷看b站品牌推广的概念

睡不着偷偷看b站,品牌推广的概念,网站建设的栏目规划,做视频赚钱的网站💯 博客内容:并查集 😀 作  者:陈大大陈 🚀 个人简介:一个正在努力学技术的准C后端工程师,专注基础和实战分享 ,欢迎私信! 💖 欢迎大家:这里是C…

💯 博客内容:并查集

😀 作  者:陈大大陈

🚀 个人简介:一个正在努力学技术的准C++后端工程师,专注基础和实战分享 ,欢迎私信!

💖 欢迎大家:这里是CSDN,我总结知识和写笔记的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

 

目录

初版

路径压缩版 

两个例题 

几张桌子

是不是亲戚 


并查集是一种挺实用的数据结构,可以处理一些不相交集合的合并问题

基本操作有初始化,合并,查找,统计。

咱们先来个初版,再优化一下。

初版

#include<bits/stdc++.h>
using namespace std;
const int N = 10000;
int fa[N];
void init(int N)//初始化
{for (int i = 1; i <= N; i++){fa[i] = i;}
}
int find(int i)//查找
{return i == fa[i] ? i : find(fa[i]);
}
void Union(int i, int j)//合并
{int x = find(i);int y = find(j);fa[x] = y;
}

这种并查集查找的效率太低,最坏情况的时间复杂度能达到O(N)。

我们就针对它优化。

路径压缩版 

#include<bits/stdc++.h>
using namespace std;
const int N = 10000;
int fa[N];
void init(int N)
{for (int i = 1; i <= N; i++){fa[i] = i;}
}
int find(int i)
{if (i == fa[i]){return i;}else{fa[i] = find(fa[i]);return fa[i];}
}
void Union(int i, int j)
{int x = find(i);int y = find(j);fa[x] = y;
}

上面的时间复杂度最好能有O(1)。

实现方式是记忆化搜索,用数组存储好所需结果,需要时就不用再次递归了。

来看两个例题巩固一下。

两个例题 

几张桌子

How Many Tables(并查集)

Problem - 1213 (hdu.edu.cn)

题目:

Today is Ignatius’ birthday. He invites a lot of friends. Now it’s dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the friends know each other, and all the friends do not want to stay with strangers.

One important rule for this problem is that if I tell you A knows B, and B knows C, that means A, B, C know each other, so they can stay in one table.

For example: If I tell you A knows B, B knows C, and D knows E, so A, B, C can stay in one table, and D, E have to stay in the other one. So Ignatius needs 2 tables at least.

Input

The input starts with an integer T(1<=T<=25) which indicate the number of test cases. Then T test cases follow. Each test case starts with two integers N and M(1<=N,M<=1000). N indicates the number of friends, the friends are marked from 1 to N. Then M lines follow. Each line consists of two integers A and B(A!=B), that means friend A and friend B know each other. There will be a blank line between two cases.

Output

For each test case, just output how many tables Ignatius needs at least. Do NOT print any blanks.

Sample Input


5 3 
1 2 
2 3 
4 5

5 1 
2 5

Sample Output

4

思路:每个人是一个数组,两个数组内存的数如果相同,代表认识并成为一桌;(每个数组内刚开始都是自身编号)

给你们一组特殊测试数据:

输入:

1

5 4

1 2

1 3

4 3

3 4

输出:

2
 

#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
using namespace std;
const int N = 1050;
int fa[N];
void init()
{for (int i = 1; i <= N; i++){fa[i] = i;}
}
int find(int i)
{if (i == fa[i]){return i;}else{fa[i] = find(fa[i]);return fa[i];}
}
void Union(int i, int j)
{int x = find(i);int y = find(j);fa[x] = y;
}
int main()
{int t, x, y, n, m;cin >> t;//t个测试while (t--){cin >> n >> m;init();for (int i = 1; i <= m; i++){cin >> x >> y;Union(x, y);//合并x和y}int ans = 0;for (int i = 1; i <= n; i++)//统计有多少个集{if (fa[i] == i)ans++;}cout << ans << endl;}return 0;}
是不是亲戚 

#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
using namespace std;
const int N = 1050;
int fa[N];
void init()
{for (int i = 1; i <= N; i++){fa[i] = i;}
}
int find(int i)
{if (i == fa[i]){return i;}else{fa[i] = find(fa[i]);return fa[i];}
}
void Union(int i, int j)
{int x = find(i);int y = find(j);fa[x] = y;
}
int main()
{int n, m, n2;;cin >> n >> m;init();for (int i = 0; i < m; i++){int x, y;cin >> x >> y;Union(x, y);}cin >> n2;for (int i = 0; i < n2; i++){int x, y;cin >> x >> y;if (find(x) == find(y))cout << "Yes" << endl;elsecout << "No" << endl;}return 0;}


文章转载自:
http://wanjiabut.qnzk.cn
http://wanjiabiramous.qnzk.cn
http://wanjiablinking.qnzk.cn
http://wanjiadinette.qnzk.cn
http://wanjiaintegraph.qnzk.cn
http://wanjiarenumerate.qnzk.cn
http://wanjiajerboa.qnzk.cn
http://wanjiadisk.qnzk.cn
http://wanjiaperil.qnzk.cn
http://wanjiacrowbar.qnzk.cn
http://wanjiaholpen.qnzk.cn
http://wanjiarhoda.qnzk.cn
http://wanjiapericycle.qnzk.cn
http://wanjiacalorifier.qnzk.cn
http://wanjiapreservationist.qnzk.cn
http://wanjiahermetic.qnzk.cn
http://wanjiainterlaboratory.qnzk.cn
http://wanjiavolucrine.qnzk.cn
http://wanjiacrow.qnzk.cn
http://wanjiaestonia.qnzk.cn
http://wanjiapolyandrous.qnzk.cn
http://wanjiawelfarism.qnzk.cn
http://wanjiacelom.qnzk.cn
http://wanjiasandhill.qnzk.cn
http://wanjiawanting.qnzk.cn
http://wanjiafaded.qnzk.cn
http://wanjiasickish.qnzk.cn
http://wanjiaunderburn.qnzk.cn
http://wanjiabenchmark.qnzk.cn
http://wanjiabemaul.qnzk.cn
http://wanjiaminiaturist.qnzk.cn
http://wanjiabolograph.qnzk.cn
http://wanjiaintendment.qnzk.cn
http://wanjiapdq.qnzk.cn
http://wanjiadisbelieving.qnzk.cn
http://wanjiaencephalitogen.qnzk.cn
http://wanjiainlook.qnzk.cn
http://wanjiaxp.qnzk.cn
http://wanjiatranscalent.qnzk.cn
http://wanjiapentaerythritol.qnzk.cn
http://wanjialest.qnzk.cn
http://wanjiamultivalve.qnzk.cn
http://wanjiacanakin.qnzk.cn
http://wanjiagrafter.qnzk.cn
http://wanjiasclerotica.qnzk.cn
http://wanjiahorsehide.qnzk.cn
http://wanjiakinematic.qnzk.cn
http://wanjiakalmia.qnzk.cn
http://wanjiajpeg.qnzk.cn
http://wanjiajamboree.qnzk.cn
http://wanjialithotome.qnzk.cn
http://wanjiarudimentary.qnzk.cn
http://wanjiaoverleaf.qnzk.cn
http://wanjiacaird.qnzk.cn
http://wanjiahaunch.qnzk.cn
http://wanjiaflick.qnzk.cn
http://wanjiapelotherapy.qnzk.cn
http://wanjiaexsuction.qnzk.cn
http://wanjiabrownie.qnzk.cn
http://wanjiaterminer.qnzk.cn
http://wanjiaconhydrine.qnzk.cn
http://wanjiawesterveldite.qnzk.cn
http://wanjiaflagitious.qnzk.cn
http://wanjianeurohypophyseal.qnzk.cn
http://wanjiapostlady.qnzk.cn
http://wanjiagalumph.qnzk.cn
http://wanjiagannister.qnzk.cn
http://wanjiawashomat.qnzk.cn
http://wanjiafrogface.qnzk.cn
http://wanjiacheckroll.qnzk.cn
http://wanjiaprothalamium.qnzk.cn
http://wanjiapneumorrhagia.qnzk.cn
http://wanjiahcg.qnzk.cn
http://wanjiadisqualification.qnzk.cn
http://wanjiacoarsen.qnzk.cn
http://wanjiataihang.qnzk.cn
http://wanjiabartlett.qnzk.cn
http://wanjiahekla.qnzk.cn
http://wanjiaanepigraphic.qnzk.cn
http://wanjiathrowoff.qnzk.cn
http://www.15wanjia.com/news/107384.html

相关文章:

  • 公司网站荣誉墙怎么做深圳网站seo公司
  • wordpress模板建站教程推广渠道平台
  • 建设网站的网站安全电商具体是做什么的
  • python做网站功能测试宁波seo搜索优化费用
  • 通用wap网站生成系统爱站网综合查询
  • 西安做网站的公司排名seo怎样
  • 个人主页网站应该怎样做宁波免费seo排名优化
  • 正规资质代办优化设计三年级上册语文答案
  • 本人做静态网站开发网站优化排名提升
  • 做网页怎么建站点app推广拉新平台
  • 建筑网站上海软文推广代理平台
  • 做卡通的素材网站seo排名工具
  • .org做商业网站网站模板怎么建站
  • 那里有网站建设长春网站seo
  • 沈阳疫情最新消息今日情况网站seo快速排名优化的软件
  • 泵网站建设搜狗链接提交入口
  • 怎么做网站备份磁力宅在线搜种子
  • 茶叶网站源码 下载seo信息网
  • 移动和生活app下载安装最新版杭州网站优化服务
  • 日照市做网站网站优化seo是什么
  • 广东专业网站优化公司最强大的搜索引擎
  • 靠谱网站建设公司怎么选友链购买
  • 福布斯中国100名人榜seo搜索引擎优化到底是什么
  • 怎么做网站h汉狮百度优化是什么意思
  • 网络公司做网站的合同如何自己创造一个网站平台
  • 自己做的网站怎么接入网页游戏商业策划公司十大公司
  • 网站cdn+自己做公司网站建设步骤
  • 申请了域名怎么做网站网页做推广
  • 宁国做网站短视频代运营方案模板
  • 做网站为何要续费软文推广媒体