⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perfect-match.cpp

📁 这是关于图论算法里面的一些代码,图论基本的思想代码的实现
💻 CPP
字号:
bool dfs(int s)
{
 int i;
 cx[s]=true;
 for(i=0;i<cnt;i++)
 if(!cy[i]&& x[s]+y[i]==w[s][i])
 {
  cy[i]=true;
  if(match[i]==-1||dfs(match[i]))
  {
   match[i]=s;
   return true;
  }   
 } 
 return false;
}
void max_match()
{
 int i,j,k;
 int d,tmp;
 memset(match,0xff,sizeof(match));   
 for(i=0;i<cnt;i++)
 {
  while(true)
  {
   memset(cx,false,sizeof(cx));
   memset(cy,false,sizeof(cy));   
   if(dfs(i))break;
   d = 0x3fffffff;
   for(j=0;j<cnt;j++)
    if(cx[j])
     for(k=0;k<cnt;k++)
      if(!cy[k])
       d = d>(tmp=x[j]+y[k]-w[j][k]))?tmp:d;
   for(j=0;j<cnt;j++){
    if(cx[j])x[j]-=d;
    if(cy[j])y[j]+=d;
   }
  } 
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -