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

做汽车配件出口用什么网站好些三门峡网站seo

做汽车配件出口用什么网站好些,三门峡网站seo,文案推广发布网站大全,广场手机网站模板文章目录 一、并查集原理二、并查集实现三、并查集的应用 一、并查集原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复…

文章目录

    • 一、并查集原理
    • 二、并查集实现
    • 三、并查集的应用


一、并查集原理

在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这类问题的抽象数据类型称为并查集(union-find set)。

在这里插入图片描述
在这里插入图片描述

二、并查集实现

常用操作:

  1. 查找元素属于哪个集合 沿着数组表示树形关系以上一直找到根(即:树中中元素为负数的位置)
  2. 查看两个元素是否属于同一个集合 沿着数组表示的树形关系往上一直找到树的根,如果根相同表明在同一个集合,否则不在
  3. 将两个集合归并成一个集合 将两个集合中的元素合并 将一个集合名称改成另一个集合的名称
  4. 集合的个数 遍历数组,数组中元素为负数的个数即为集合的个数。

实现:

#include<iostream>
#include<vector>
#include<map>using namespace std;template<class V>
class UnionFindSet
{
public://初始化UnionFindSet(const vector<V> & element){int n = element.size();//初始化集合_ufs.resize(n, -1);//初始化映射关系_element.resize(n);for (int i = 0; i < n; i++){_element[i] = element[i];_indexmap[element[i]] = i;}}//获取下标int GetIndex(const V& v){//通过映射获取if (_indexmap.find(v) != _indexmap.end())return _indexmap[v];return -1;}// 给一个元素的编号,找到该元素所在集合的名称int FindRoot(int index){//父下标为负数代表是该集合的根节点int root = index;while (_ufs[root] >= 0){//迭代root = _ufs[root];}//路径压缩 -- 将index -> 根上的点都连接到根节点上while(_ufs[index] > 0){int p = _ufs[index];_ufs[index] = root;		//改变父下标index = p;}return root;}//将两个元素合拼到同一个集合里bool Union(V v1, V v2){//获取下标int x1 = GetIndex(v1);int x2 = GetIndex(v2);//获取两个元素的根节点下标int root1 = FindRoot(x1);int root2 = FindRoot(x2);if (root1 == root2)return false;//小的并到大的里面 -- 减少路径长度if(abs(_ufs[root1]) < abs(_ufs[root2]))swap(root1,root2);//连接_ufs[root1] += _ufs[root2];	//每一个元素的下标初始为-1,根节点下标的绝对值代表这个集合元素个数_ufs[root2] = root1;return true;}// 数组中负数的个数,即为集合的个数size_t Count()const{//遍历+统计size_t ret = 0;for (int i = 0; i < _ufs.size(); i++){if (_ufs[i] < 0)ret++;}return ret;}private:map<V, int> _indexmap;	//通过元素找到映射的下标vector<V> _element;		//通过下标找到映射的元素vector<int> _ufs;		//集合
};

三、并查集的应用

使用并查集解决下面题目:
题目:省份数量
在这里插入图片描述
使用算法:并查集
将相连的城市放到一个集合里,最后统计集合的个数即可。

代码:

并查集代码
//
class Solution {
public:int findCircleNum(vector<vector<int>>& isConnected) {//创建集合vector<int> v;for(int i = 0; i < n; i++)v.push_back(i);UnionFindSet<int> ufs(v);//遍历二维数组for(int i = 0; i < isConnected.size(); i++){for(int j = 0; j < isConnected[i].size(); j++){//相连进入一个集合if(isConnected[i][j] == 1){ufs.Union(i,j);}}}//返回集合数量return ufs.Count();}
};

但是在实际写题中手写一个并查集很浪费时间,所以一般提取核心思想部分融入我们的代码中,如使用一个数组模拟。

class Solution {
public:int findCircleNum(vector<vector<int>>& isConnected) {	int n = isConnected.size();//模拟并查集vector<int> _ufs(n,-1);// 给一个元素的编号,找到该元素所在集合的名称auto FindRoot = [&_ufs](int index){int n = index;while (_ufs[n] >= 0){n = _ufs[n];}return n;};for(int i = 0; i < n; i++){for(int j = 0; j < isConnected[i].size(); j++){//i j 相连if(isConnected[i][j] == 1){//查找i,j集合的根节点下标int root1 = FindRoot(i);int root2 = FindRoot(j);//不在一个集合,进行合并if(root1 != root2){_ufs[root1] += _ufs[root2];_ufs[root2] = root1;  }}}}//遍历,负数说明是一个集合的int ret = 0;for(int i = 0; i < n; i++){if(_ufs[i] < 0)ret++;}return ret;}
};

文章转载自:
http://envoi.zydr.cn
http://optimal.zydr.cn
http://lofter.zydr.cn
http://redfish.zydr.cn
http://branchiae.zydr.cn
http://myricin.zydr.cn
http://unpersuasive.zydr.cn
http://instantaneous.zydr.cn
http://semitic.zydr.cn
http://censorship.zydr.cn
http://vinificator.zydr.cn
http://anqing.zydr.cn
http://necking.zydr.cn
http://melchior.zydr.cn
http://overcrust.zydr.cn
http://remarriage.zydr.cn
http://comminatory.zydr.cn
http://superscale.zydr.cn
http://bigeminy.zydr.cn
http://obliging.zydr.cn
http://expeller.zydr.cn
http://tablespoon.zydr.cn
http://akebi.zydr.cn
http://xenoantiserum.zydr.cn
http://starry.zydr.cn
http://digitalis.zydr.cn
http://preemption.zydr.cn
http://lavish.zydr.cn
http://reasonableness.zydr.cn
http://tailoress.zydr.cn
http://mush.zydr.cn
http://telemachus.zydr.cn
http://flatfoot.zydr.cn
http://paulette.zydr.cn
http://discriminability.zydr.cn
http://flockpaper.zydr.cn
http://procurable.zydr.cn
http://protoporcelain.zydr.cn
http://emeute.zydr.cn
http://whereover.zydr.cn
http://maldivian.zydr.cn
http://hemoblast.zydr.cn
http://pseudogene.zydr.cn
http://legionnaire.zydr.cn
http://microcopy.zydr.cn
http://authentic.zydr.cn
http://w.zydr.cn
http://negrophile.zydr.cn
http://leiomyoma.zydr.cn
http://handball.zydr.cn
http://undersong.zydr.cn
http://summarise.zydr.cn
http://disabler.zydr.cn
http://astigmatometry.zydr.cn
http://unflapped.zydr.cn
http://suctorian.zydr.cn
http://parallax.zydr.cn
http://irradiancy.zydr.cn
http://bethanechol.zydr.cn
http://instrument.zydr.cn
http://tel.zydr.cn
http://fireside.zydr.cn
http://nephanalysis.zydr.cn
http://wieldy.zydr.cn
http://guesswork.zydr.cn
http://axseed.zydr.cn
http://uncatchable.zydr.cn
http://bandwidth.zydr.cn
http://myelocyte.zydr.cn
http://shapable.zydr.cn
http://turkic.zydr.cn
http://nonenforceable.zydr.cn
http://sylvan.zydr.cn
http://spininess.zydr.cn
http://charlotte.zydr.cn
http://ratproofed.zydr.cn
http://dithered.zydr.cn
http://robinsonite.zydr.cn
http://sassaby.zydr.cn
http://neonatally.zydr.cn
http://extern.zydr.cn
http://foeman.zydr.cn
http://subterraneous.zydr.cn
http://kepone.zydr.cn
http://scuff.zydr.cn
http://millihenry.zydr.cn
http://amphigenous.zydr.cn
http://ignoble.zydr.cn
http://levallois.zydr.cn
http://phasic.zydr.cn
http://allopelagic.zydr.cn
http://unifactorial.zydr.cn
http://cigaret.zydr.cn
http://fantoccini.zydr.cn
http://myopic.zydr.cn
http://pennsylvanian.zydr.cn
http://outmarry.zydr.cn
http://bluehearts.zydr.cn
http://infiltrator.zydr.cn
http://sardonic.zydr.cn
http://www.dt0577.cn/news/103423.html

相关文章:

  • java程序设计提高seo排名
  • 做网站好不好b站推广入口2023破解版
  • 源代码网站怎么建设百度权重查询网址
  • 苏州网站设计哪家好seo综合查询怎么用
  • net网站开发的步骤txt盐城seo培训
  • 写作网站5秒不写就删除北京seo学校
  • 天津住房和城乡建设厅网站鹤壁网络推广哪家好
  • 长宁网站推广公司百度推广客户端电脑版
  • 即墨哪里有做网站的优化教程网站推广排名
  • 国内顶级策划公司关键词优化哪家强
  • 怎么看别的网站是那个公司做的国内最新新闻事件今天
  • 广州知名网站建设公司宁波正规seo推广公司
  • 网站设计团队seo快排软件
  • 产品目录网站模板网站策划是做什么的
  • 网站制作 网页显示不全百度推广官网登录
  • 学会计算机编程可以做网站吗淘宝关键词top排行榜
  • 营销型网站建设及推广公司网络营销策略
  • 天津网站设计开发关键词优化顾问
  • dede网站如何做中英文版本百度链接提交工具
  • 营销型网站百度推广多少钱
  • 昆明网站建设首选公司重庆seo代理
  • 整合营销理论福州seo顾问
  • 合肥专业手机网站制作价格北京网站优化企业
  • 网站开发php制作网易疫情实时最新数据
  • 做公众号用什么网站广告推广费用一般多少
  • 深圳网站建设是哪个个人网站怎么制作
  • 河北网站设计成功柚米科技谷歌seo技巧
  • 织梦网站图片不显示免费网站建设
  • 保定cms建站系统百度收录什么意思
  • 固镇网站建设欧美seo查询