IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 并查集-- -> 正文阅读

[C++知识库]并查集--

并查集

#include<iostream>
#include<vector>
using namespace std;//x是数组的下标

class UnionFindSet
{
public:
	//一开始每一个都表示一个独立的集合
	UnionFindSet(size_t n)
	{
		_v.resize(n, -1);
	}


	int FindRoot(int x)
	{
		//一直找到负数停止
		while (_v[x] >= 0)
		{
			x = _v[x];
		}
		return x;
	}

	//判断x和y是否在一个集合,如果不在那就合并
	bool Union(int x1, int x2)
	{
		int root1 = FindRoot(x1);
		int root2 = FindRoot(x2);

		//如果两个根是相同的,那么这两个数就在一个集合,不相同说明不在一个集合,那就进行合并
		if (root1 == root2)
			return false;
		//走到这里已经说明了两个数不是一个集合的,所以需要合并
		_v[root1] += _v[root2];
		_v[root2] = root1;
		return true;
	}

	//数组中,负数的个数,即为集合的个数
	size_t Count()
	{
		size_t Count = 0;
		for (auto& e : _v)
		{
			if (e < 0)
				++Count;
		}
		return Count;
	}
private:
	vector<int> _v;
};

b树

反向指针:找父亲
把高度压低:b树,1个节点1024个值,

单元最短路径

当遍历到(3,1), w(0,3)+w (3,1)<w(0,1),更新w(0,1)的值=30,但是这里不能停止,按深度优先的方式,再继续更新下去,因为(0,1)有了更短的路径,1连接出去的所有临界顶点跟0之间可能都会更新出更短的路径,比如w (0,1)+w(1,2) < w(0,2),那么w(0,2)更新为40,以此类推,再往下(0,2)更新出了更短路径,2连接出去所有点,跟0之间可能又有更短路径,还要继续往下更新直到没有更新出更短路径,比如w(0,2)+w(2,4) > w(0,4),没有更新出更短路径,深度遍历的更新就可以停止。遍历所有的边,找出0链接出去的更短路径,但是更过程中只要更新出更短路径,则要深度往边遍历尝试再更新更短的路径。

LRU Cache

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:18:51  更:2022-05-12 16:20:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 13:58:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码