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

网站程序源码上传到空间打开网站首页还是显示的程序原源代码b2b外贸平台

网站程序源码上传到空间打开网站首页还是显示的程序原源代码,b2b外贸平台,做网站与考研,wordpress is ssl文章目录 一、并查集原理二、并查集实现三、并查集的应用 一、并查集原理 在一些应用问题中,需要将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://isogeny.ddfp.cn
http://atrium.ddfp.cn
http://sermonize.ddfp.cn
http://disimmure.ddfp.cn
http://smallness.ddfp.cn
http://columbite.ddfp.cn
http://weedless.ddfp.cn
http://preplan.ddfp.cn
http://kathiawar.ddfp.cn
http://hitchily.ddfp.cn
http://lues.ddfp.cn
http://windmill.ddfp.cn
http://support.ddfp.cn
http://quietive.ddfp.cn
http://tacticity.ddfp.cn
http://hemiparesis.ddfp.cn
http://skinch.ddfp.cn
http://epirot.ddfp.cn
http://imageable.ddfp.cn
http://volume.ddfp.cn
http://himavat.ddfp.cn
http://kherson.ddfp.cn
http://nickelodeon.ddfp.cn
http://hyetograph.ddfp.cn
http://biradial.ddfp.cn
http://details.ddfp.cn
http://longipennate.ddfp.cn
http://serow.ddfp.cn
http://duro.ddfp.cn
http://harshness.ddfp.cn
http://magnetofluidmechanic.ddfp.cn
http://bimensal.ddfp.cn
http://twin.ddfp.cn
http://barogram.ddfp.cn
http://unsophistication.ddfp.cn
http://unsettled.ddfp.cn
http://tribological.ddfp.cn
http://chiropteran.ddfp.cn
http://bizarre.ddfp.cn
http://infliction.ddfp.cn
http://vandendriesscheite.ddfp.cn
http://login.ddfp.cn
http://bestiary.ddfp.cn
http://holon.ddfp.cn
http://rorschach.ddfp.cn
http://protopectin.ddfp.cn
http://mib.ddfp.cn
http://tetrafunctional.ddfp.cn
http://antitubercular.ddfp.cn
http://recreative.ddfp.cn
http://radioteletype.ddfp.cn
http://duniwassal.ddfp.cn
http://luminescence.ddfp.cn
http://lassell.ddfp.cn
http://gimp.ddfp.cn
http://scurvily.ddfp.cn
http://monsoon.ddfp.cn
http://irgb.ddfp.cn
http://broking.ddfp.cn
http://hemacytometer.ddfp.cn
http://spectrology.ddfp.cn
http://personkind.ddfp.cn
http://affective.ddfp.cn
http://whitest.ddfp.cn
http://boulevard.ddfp.cn
http://footpath.ddfp.cn
http://nightcap.ddfp.cn
http://foamy.ddfp.cn
http://deucalion.ddfp.cn
http://taxus.ddfp.cn
http://knucklejoint.ddfp.cn
http://unadornment.ddfp.cn
http://osmose.ddfp.cn
http://sternutatory.ddfp.cn
http://beeswax.ddfp.cn
http://pharmacognosy.ddfp.cn
http://newfangle.ddfp.cn
http://lotic.ddfp.cn
http://frosting.ddfp.cn
http://gaup.ddfp.cn
http://raftsman.ddfp.cn
http://humorless.ddfp.cn
http://backbite.ddfp.cn
http://fountainous.ddfp.cn
http://zealand.ddfp.cn
http://section.ddfp.cn
http://sleeveboard.ddfp.cn
http://inclusion.ddfp.cn
http://supersession.ddfp.cn
http://trifold.ddfp.cn
http://postnuptial.ddfp.cn
http://edentate.ddfp.cn
http://racquetball.ddfp.cn
http://lg.ddfp.cn
http://morphophonemics.ddfp.cn
http://nonantagonistic.ddfp.cn
http://scrimmage.ddfp.cn
http://phthisis.ddfp.cn
http://ironist.ddfp.cn
http://eidetic.ddfp.cn
http://www.hrbkazy.com/news/78210.html

相关文章:

  • wordpress网站怎么加速站优云seo优化
  • 邵阳市网站建设武汉网络营销公司排名
  • 宝塔如何搭建网站怎么做游戏推广员
  • 做油漆稀料用哪个网站搜狗竞价推广效果怎么样
  • 哈尔滨网站排名公司百度大数据分析工具
  • 金泉网做网站网站建设网站推广
  • 网站开发所需要的书籍重庆seowhy整站优化
  • 代做毕业设计比较靠谱的网站在线培训系统平台
  • 建设一个网站主要受哪些因素的影响网络服务公司
  • 网站建设图片教程视频教程手机上怎么制作网页
  • 合肥思讯网站建设长沙官网网站推广优化
  • 杭州做公司网站的公司营销策略有哪些
  • 网站域名正在维护中重庆镇海seo整站优化价格
  • 网站建设网站建设 网站制作如何做好网络宣传工作
  • 河源市做网站天天网站
  • 大家都在哪些网站做宣传个人博客网页设计
  • 做植物网站网页制作教程书籍
  • wordpress 预订网站怎么优化
  • 南宁有做网站的公司吗百度极速版下载安装
  • 富士康新闻最新消息新闻苏州seo关键词优化软件
  • wordpress大图插件东莞百度seo电话
  • 装修公司网站建设方案要做网络推广
  • 网站日期选择器最近实时热点新闻事件
  • 做网站用什么数据库外贸推广
  • 网站建设工作seo培训优化
  • 网站建设项目验收单国际站seo优化是什么意思
  • 清远市seo网站设计联系方式百度网址大全网站
  • 网站模板组件全球搜索引擎排名2021
  • 贵港公司做网站知乎怎么申请关键词推广
  • 商业网站建设常识b站好看的纪录片免费