一、DFS:
const int maxn=100008;
int head[maxn],nt[maxn],ver[maxn],edge[maxn];
bool ha[maxn];
void DFS(int x)
{
ha[x]=true;
for(int i=head[x];i;i=nt[i])
{
int y=ver[i];
if(ha[y]) continue;
DFS(y);
}
return ;
}
int main(