链式前向星版本:
int n,cnt,used[55],match[55];
int find(int x){
for(int i=head[x];i!=-1;i=edge[i].next){
int v=edge[i].to;
if(!used[v]){
used[v]=true;
if(!match[v]||find(match[v])){
match[v]=x;
return true;
}
}
}
return false;
}
洛谷P3386模板:
#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,n,a) for(int i=n;i>=a;i--)
#define endl '\n'</