其他分享
首页 > 其他分享> > hdu 1150

hdu 1150

作者:互联网

题目 :Problem - 1150 (hdu.edu.cn)

#include<bits/stdc++.h>
using namespace std;
#define MXN 110
int n,m,g[MXN][MXN],linker[MXN];
bool used[MXN];
bool dfs(int a){
	for(int i=0;i<m;i++){
		if(g[a][i]==1&&used[i]!=1){
			used[i]=true;
			if(linker[i]==-1||dfs(linker[i])==1){
				linker[i]=a;
				return true;
			}
		}
	}
	return false;
}
int hungary(){
	int res=0;
	memset(linker,-1,sizeof linker);
	for(int i=0;i<n;i++){
		memset(used,false,sizeof used);
		if(dfs(i)){
			res++;
		}
	}
	return res;
}
int main(){
	int k,a,x,y;
	while(scanf("%d",&n)==1&&n){
		memset(g,0,sizeof g);
		scanf("%d %d",&m,&k);
		while(k--){
			scanf("%d %d %d",&a,&x,&y);
			if(x!=0&&y!=0){
				g[x][y]=1;
			}
		}
		printf("%d\n",hungary());
	}
	return 0;
}

标签:std,hdu,int,1150,MXN,bool
来源: https://blog.csdn.net/qq_52607885/article/details/119299036