bool dfs(int x){
for(int i=head[x];i;i=nexts[i]){
int y=ver[i];
if(!visited[y]){//如果已经考虑过就不考虑了
visited[y]=1;
if(!match[y]||dfs(match[y])){
match[y]=x;
return true;
}
}
}
return false;
}
for(int i=1;i<=n;i++){
memset(visited,0,sizeof(visited));
if(dfs(i)) ans++;
}