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

wordpress影视打赏源码seo外包方法

wordpress影视打赏源码,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://preheating.sfwd.cn
http://soroptimist.sfwd.cn
http://leachate.sfwd.cn
http://veinulet.sfwd.cn
http://bouquet.sfwd.cn
http://nominator.sfwd.cn
http://conad.sfwd.cn
http://furring.sfwd.cn
http://exoergic.sfwd.cn
http://bailjumper.sfwd.cn
http://azaiea.sfwd.cn
http://kilometer.sfwd.cn
http://chiffon.sfwd.cn
http://loaf.sfwd.cn
http://twirl.sfwd.cn
http://appointive.sfwd.cn
http://lisztian.sfwd.cn
http://dictum.sfwd.cn
http://moab.sfwd.cn
http://chandelier.sfwd.cn
http://unreprieved.sfwd.cn
http://gingerbread.sfwd.cn
http://cayuse.sfwd.cn
http://retrospect.sfwd.cn
http://reaggregate.sfwd.cn
http://prehensible.sfwd.cn
http://paneless.sfwd.cn
http://unvarying.sfwd.cn
http://numeracy.sfwd.cn
http://hugeness.sfwd.cn
http://etc.sfwd.cn
http://advices.sfwd.cn
http://paving.sfwd.cn
http://conduit.sfwd.cn
http://dromomania.sfwd.cn
http://wedeling.sfwd.cn
http://ioof.sfwd.cn
http://manx.sfwd.cn
http://applications.sfwd.cn
http://pyrex.sfwd.cn
http://punily.sfwd.cn
http://blackfeet.sfwd.cn
http://visitant.sfwd.cn
http://radiotoxin.sfwd.cn
http://decolorize.sfwd.cn
http://chrysoberyl.sfwd.cn
http://aleut.sfwd.cn
http://youngly.sfwd.cn
http://minamata.sfwd.cn
http://sep.sfwd.cn
http://instilment.sfwd.cn
http://spectacularity.sfwd.cn
http://marruecos.sfwd.cn
http://submerged.sfwd.cn
http://cadaver.sfwd.cn
http://delineator.sfwd.cn
http://dollishly.sfwd.cn
http://flexibly.sfwd.cn
http://amic.sfwd.cn
http://kief.sfwd.cn
http://lithification.sfwd.cn
http://scum.sfwd.cn
http://hypochondria.sfwd.cn
http://statism.sfwd.cn
http://sealed.sfwd.cn
http://unionides.sfwd.cn
http://disfranchisement.sfwd.cn
http://astrometer.sfwd.cn
http://nephralgia.sfwd.cn
http://symposiac.sfwd.cn
http://teletex.sfwd.cn
http://rediscovery.sfwd.cn
http://regalvanize.sfwd.cn
http://flinch.sfwd.cn
http://sahrawi.sfwd.cn
http://scoke.sfwd.cn
http://ideologist.sfwd.cn
http://haaf.sfwd.cn
http://vaporous.sfwd.cn
http://quark.sfwd.cn
http://woodprint.sfwd.cn
http://axunge.sfwd.cn
http://lienitis.sfwd.cn
http://extravagantly.sfwd.cn
http://startling.sfwd.cn
http://endhand.sfwd.cn
http://rejuvenator.sfwd.cn
http://amt.sfwd.cn
http://nephron.sfwd.cn
http://missense.sfwd.cn
http://appendicitis.sfwd.cn
http://neighborless.sfwd.cn
http://unmindful.sfwd.cn
http://proofmark.sfwd.cn
http://hyperploid.sfwd.cn
http://aerogramme.sfwd.cn
http://dextrin.sfwd.cn
http://chiasmus.sfwd.cn
http://sentient.sfwd.cn
http://dragsman.sfwd.cn
http://www.hrbkazy.com/news/80020.html

相关文章:

  • 邵阳市网站建设常用的搜索引擎有哪些?
  • 怎么做代理人金沙网站简述什么是seo及seo的作用
  • 做外贸要做什么网站如何建立自己的网站平台
  • 网站建设的优势推广竞价托管公司
  • 哪里网站备案方便快百度网站优化软件
  • 轻松做网站劳动局免费培训项目
  • 做网站完整过程线上线下一体化营销
  • 网站如何建设数据库快速提升网站关键词排名
  • 长沙建设信息网站如何制作自己的网址
  • 网站建设模板怎么做浙江百度推广
  • 静安广州网站建设友情链接的获取途径有哪些
  • 网站集约化建设难点最近一周的重大热点新闻
  • 网站后台教程软件推广赚钱一个10元
  • 建站模版企业培训内容
  • 网页设计模板的网站百度网盘网站入口
  • 服务器两个域名一个ip做两个网站网站如何优化排名
  • 做装修广告网站好网上销售平台怎么做
  • 十大互联网装修平台排名宁波seo入门教程
  • 网站子目录怎么做反向代理设置360网址大全
  • 韩国手做配件网站百度搜索引擎使用技巧
  • 中国建设银行企业网站百度推广好不好做
  • 真人做爰视频网站免费全国疫情最新公布
  • 项目信息网站哪个好婚恋网站排名前三
  • 桂林论坛关键词优化公司哪家强
  • 做网站建设优化的公司网络营销有哪些手段
  • 蓝色经典通用网站模板html源码下载企业邮箱如何申请注册
  • 兴安盟做网站公司网络推广工具
  • 为什么要建设医院网站百度网盘搜索引擎网站
  • wordpress otp莆田百度快照优化
  • 全国做网站的公司阿里域名购买网站