并查集代码
int find(int x)
{
if(f[x]!=x) f[x] = find(f[x]);
return f[x];
}
//合并
int a = find[x];
int b = find[y];
find[a] = b;
遇见过的并查集的两个题
一、蓝桥杯七段码https://www.lanqiao.cn/courses/2786/learning/?id=88886
用dfs后使用并查集进行判断灯是不是都连接在一起的
将连接的两个灯如果同时被选中,就将他们放在同一个祖宗结点下,最后判断是不是只有一个祖宗结点。
二、牛客网 奇怪的比赛
根据题意进行维护并查集,最后遍历最后有几个祖宗结点