int dfs(int p)
{
int i,t;
for(i=0;i<m;i++)
if(map[i][p]&&!chk[i])
{
chk[i]=1;
t=match[i];
match[i]=p;
if(t==-1||dfs(t))
return 1;
match[i]=t;
}
return 0;
}
void Pro()
{
int i,ret=0;
//match字典序最小
for(int i=1;i<=n;i++)
{
memset(chk,0,sizeof(chk));
ret+=dfs(i);
}
/*
match字典序最大
for(int i=n;i>=1;i--)
{
memset(chk,0,sizeof(chk));
ret+=dfs(i);
}
*/
}
二分图最大匹配
最新推荐文章于 2025-06-19 11:14:51 发布