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

一、输入输出

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;
	}
};
相关推荐
HugoStudio_SWAN14 分钟前
洛谷 B4500 / B4449 / B3843 凯撒密码、密码强度与密码合规——加密与安全的三道门
c++·学习·程序人生·算法·安全
wxwx_bscxy32225 分钟前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite
枫叶林FYL1 小时前
【群体智能集群控制工程实践】第3章 一致性协同算法
算法
禹凕2 小时前
滑动窗口算法实战指南
python·算法
evans在进步2 小时前
Tomcat NIO 工作原理详解:从 Acceptor、Poller 到容器处理链
java·tomcat·nio
DisonTangor2 小时前
【腾讯混元雪耻归来】 Hy4 preview:770B 参数 MoE 旗舰模型,1M 上下文全面开源
人工智能·算法·开源·aigc·腾讯云·腾讯云ai代码助手
明月_清风3 小时前
从二叉树到 B+ 树:一文搞懂工程中「树」的演化之道
数据结构·算法·go
渡我白衣3 小时前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
天下无敌笨笨熊3 小时前
C#Modbus串口开发心得
开发语言·c#
电商API_180079052473 小时前
电商商品价格监控工具淘宝京东商品价格抓取API项目实操分享
java·大数据·开发语言·前端·数据挖掘