并查集求助
  • 板块P6153 询问
  • 楼主sjwhsss
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/7/31 23:23
  • 上次更新2024/8/1 00:11:43
查看原帖
并查集求助
982518
sjwhsss楼主2024/7/31 23:23
#include <bits/stdc++.h>
using namespace std;
map <int , int>fa;
long long n , m;
int Find(int x)
{
	return fa[x] == x ? x : fa[x]=Find(fa[x]);
}
void Merge(int x , int y)
{
	int fx = Find(x) , fy = Find(y);
	fa[fx]=fy;
	n--;
	return;
}
int main ()
{
	cin >> n >> m;
	for (int i = 1; i <= m; i++)
	{
		int x , y;
		cin >> x >> y;
		Merge(x , y);
	}
	cout << n;
	return 0;
}

为什么直接输出n - m就对了,用并查集(虽然没什么用)就过不了

2024/7/31 23:23
加载中...