为啥不能是 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);//反集合并 } }