并查集
#include<stdio.h> int stt[10005]; void sset(int x) { for(int i=1;i<=x;i++) stt[i]=i; } int ffind(int x) { if(x==stt[x]) return x; else return stt[x]=ffind(stt[x]); } void Union(int a,int b) { int x=ffind(a); int y=ffind(b); if(x==y) return; stt[y]=x; } int main() { sset(10000); /* */ }