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

一、输入输出

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;
	}
};
相关推荐
huangdong_1 小时前
1688商品图片采集技术解析:登录态处理与SKU图自动分类
开发语言
马士兵教育1 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
youngerwang1 小时前
【从搬运工到协处理器:网卡芯片架构、算法、验证与边缘演进深度剖析】
网络·算法·架构·芯片
chase_my_dream1 小时前
C++ + SLAM 高频面试问题整理
开发语言·c++·面试
snow@li1 小时前
Java:理解 Gradle / 后端项目的管家 / 打包SpringBoot 应用 / 完成编译、下载依赖、运行测试、打包 JAR/WAR / 速查表
java
KaMeidebaby1 小时前
卡梅德生物技术快报|纯化重组蛋白实操详解
人工智能·python·tcp/ip·算法·机器学习
Cloud_Shy6181 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
云烟成雨TD1 小时前
Spring AI 1.x 系列【57】动态工具发现:Tool Search Tool
java·人工智能·spring
zfoo-framework2 小时前
[修改代码使用]codex官方app中使用中转(不需要cc-switch) 1.config.toml 2.sk方式登录
java
天佑木枫2 小时前
15天Python入门系列 · 序
开发语言·python