没什么说的,仍然用一般的存储方式就好,框架:
void find(){
count=0;
memset(vis,0,sizeof(vis));
for(int i=0;i<n;i++)
if(!vis[i]){
count++;
dfs(i);
}
}
void dfs(int x){
vis[x]=1;
int d=f[x].size();
for(int i=0;i<d;i++){
int v=f[x][i];
if(!vis[v]) dfs(v)
}
}