为啥不能是 f[find(b)]=find(a+n)
如题 1,2处反过来就是错的,
因为[1,n]中指向了[n+1,2*n]
但这怎么理解呢
for(int i=1;i<=2*n;i++){
f[i]=i;//初始化,千万不能漏
}
for(int i=1;i<=m;i++){
cin>>ch>>a>>b;
if(ch=='F'){
f[find(a)]=find(b);//合并
}else{
//1
f[find(a+n)]=find(b);
//2
f[find(b+n)]=find(a);//反集合并
}
}