HDU2255 奔小康赚大钱 二分图最大权匹配 KM算法模板

这道题很裸的二分图最大权匹配了。。

用KM算法就可以。也可以用最小费用最大流(取相反数),但在简单情况下很容易超时。

附上AC代码:

#include
#include
#include
#include
#include
using namespace std;
const int INF=0x3f3f3f3f;

const int N=310;
int nx,ny;
int g[N][N];
int link[N],lx[N],ly[N];
int slack[N];
bool visx[N],visy[N];

bool dfs(int x)
{
    visx[x]=true;
    for(int y=0;ytmp)
            slack[y]=tmp;
    }
    return false;
}
int KM()
{
    memset(link,-1,sizeof(link));
    memset(ly,0,sizeof(ly));
    for(int i=0;ilx[i])
                lx[i]=g[i][j];
    }
    for(int x=0;xslack[i])
                    d=slack[i];
            for(int i=0;i

 

你可能感兴趣的:(算法-网络流,匹配问题)