具体简介
int n,m;
int line[maxn][maxm];
int vis[maxm];
int right[maxm];
bool find(int x){
for (int i=1; i<=m; i++){
if (line[x][i] && !vis[i]){
vis[i]=1;
if (right[i]==-1 || find(r[i])){
right[i]=x;
return true;
}
}
}
return false;
}
int tol=0;
void solve(){
for (i=1; i<=n; i++){
memset(vis,0,sizeof(vis));
if (find(i)) tol++;
}
}
int main(){
memset(line,0,sizeof(line));
memset(r,-1,sizeof(r));
/**************************************/
}
来源:CSDN
作者:爱吃猫的鱼
链接:https://blog.csdn.net/qq_43640009/article/details/103990541