二分图匹配——匈牙利算法

こ雲淡風輕ζ 提交于 2020-01-16 04:15:18

具体简介

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));
	/**************************************/
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!