和蛇皮的方法只有91

P2342 [USACO04OPEN] Cube Stacking G【重题,见 P5092】

```cpp #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> using namespace std; int baba[30001],son[30001],m; inline int findb(int x) { if(baba[x]==x) return x; return findb(baba[x]); } inline int finds(int x) { if(son[x]==x) return x; return finds(son[x]); } int main() { ios::sync_with_stdio(false); for(int i=1;i<=30000;i++) baba[i]=i,son[i]=i; cin>>m; while(m>0) { m--; char s; cin>>s; if(s=='M') { int x,y; cin>>x>>y; int x1=finds(x),y1=findb(y); baba[y1]=x1; son[x1]=y1; } if(s=='C') { int z; cin>>z; int sum=0; while(son[z]!=z) { sum++; z=son[z]; } cout<<sum<<endl; } } return 0; } ```
by 嗯。 @ 2018-07-11 15:52:27


%%%dalao
by ZXZ695 @ 2018-11-09 19:37:11


|