算法模板:输入输出,并查集

一、输入输出

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;
#define int long long
#define endl '\n'

void solve()
{
	
}

signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int _ = 1;
//	cin >> _;
	while(_--)
	{
		solve();
	}
	return 0;
}

二、并查集

Disjoint Set Union

中文:不相交集合合并 / 并查集

cpp 复制代码
struct DSU
{
	vector<int> fa, sz;
	DSU(int n) 
		:fa(n + 1)
		,sz(n + 1, 1) 
	{
		iota(fa.begin(), fa.end(), 0);	
	}
	int find(int x)
	{
		while(x != fa[x]) x = fa[x] = fa[fa[x]];
		return x;
	}
	int size(int x) 
	{
		return sz[find(x)];
	}
	bool same(int x, int y)
	{
		return find(x) == find(y);
	}
	bool merge(int x, int y)
	{
		x = find(x), y = find(y);
		if(x == y) return false;
		// 如果x的集合更大,就交换x和y,保证把小的挂到大的上
		if(sz[x] > sz[y]) swap(x, y);
		sz[y] += sz[x];
		fa[x] = y;
		return true;
	}
};
相关推荐
爱喝水的鱼丶33 分钟前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
w_zero_one1 小时前
算法--模拟
java·数据结构·算法
小灰灰搞电子1 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
外收内放1 小时前
面向对象高级(实战案例)
开发语言·python·学习
Javatutouhouduan1 小时前
阿里1658页Java面试题总结(含答案)
java·高并发·java面试·java面试题·后端开发·java程序员·java八股文
秋天的怀念_David1 小时前
算法一千零一夜 · 第十三夜 幻方,武侠世界里的数学迷宫
java·程序人生·算法
专业程序开发源2 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
秋天的怀念_David2 小时前
算法一千零一夜 · 第十四夜 幻方与奇妙的二进制
java·程序人生·算法
thefool1122662 小时前
网络编程^
java
薛定e的猫咪2 小时前
(ICLR 2020)MAML 靠的不是快速学习,而是特征复用
人工智能·深度学习·学习·算法·机器学习