哪个大大大大大大大大大大佬能帮我解释一下这个并查集代码
查看原帖
哪个大大大大大大大大大大佬能帮我解释一下这个并查集代码
1764533
mrgaoxh楼主2025/7/25 18:53
#include<bits/stdc++.h>
using namespace std;
int n, fa[200010], ans=INT_MAX, cnt;
int find(int x){
    ++cnt;
	return (fa[x]==x?x:find(fa[x]));
}
int main(){
	cin >> n;
	for(int i=1; i<=n; i++)
		fa[i]=i;
	for(int i=1, t; i<=n; cnt=0, i++)
		cin >> t,
		find(t)==i?ans=min(ans, cnt):fa[i]=t;
	cout << ans;
	return 0;
}
2025/7/25 18:53
加载中...