二分图板子
using namespace std;
bool vis[N];
int match[N];
bool find(int x)
{
for(int i=h[x];i;i=nxt[i])
{
int y=to[i];
if(!vis[y])
{
vis[y]=1;
if(!match[y]||find(match[y]))
{
match[y]=x;
return 1;
}
}
}
return 0;
}
int main()
{
for(int i=1;i<=n;i++)
{
memset(vis,0,sizeof vis);
if(find(i)) ans++;
}
}`

浙公网安备 33010602011771号