bool dfs(int u){ for(auto v:e[u]){ if(vis[v]) continue; vis[v]=1;//干啥用的? if(!alt[v]||dfs(alt[v])){ alt[v]=u; return 1; } } return 0; } for(int i=1;i<=n;i++){ memset(vis,0,sizeof(vis));//为啥要清空 ans+=dfs(i); }