1.求解两组人最多可以匹配几对,经典的例题,红线代表互有好感,问最多能搓成几对情侣
3.模板:匈牙利算法
bool find(int x)
{
for(int i=1;i<=m;i++)
{
if(!vis[i] && G[x][i])//如果可以匹配,且未被匹配过
{
vis[i] = 1;
if(!pre[i] || find(pre[i]))
{
pre[i] = x;
return true;
}
}
}
return false;
}
int match()
{
int sum = 0;
for(int i =1;i <= n;i++)
{
mem(vis);
if(find(i))sum++;
}
return sum;
}
//match();//返回最大匹配数