求助
查看原帖
求助
939931
Addicted_Game楼主2025/1/4 14:24
#include<bits/stdc++.h>
using namespace std;
const int N=5e2+5,M=5e4+5;
int n1,n2,m;
int cnt,h[N],ne[M],e[M];
void add(int x,int y){
	cnt++;
	ne[cnt]=h[x];
	e[cnt]=y;
	h[x]=cnt;
}
int used[N];
int ready[N];
int sum;
bool dfs(int x,int k){
	if(used[x]==k) return false;
	used[x]=k;
	for(int i=h[x];i;i=ne[i]){
		int to=e[i];
		if(!ready[to]||dfs(ready[to],k)){
			ready[to]=x;
			return true;
		}
	}
	return false;
}
int main(){
	scanf("%d%d%d",&n1,&n2,&m);
	while(m--){
		int x,y;
		scanf("%d%d",&x,&y);
		add(x,y);
	}
	for(int i=1;i<=n1;i++){
		if(!dfs(i,i)){
			sum++;
		}
	}
	printf("%d",sum);
	return 0;
}

匈牙利板子,调了一上午还是没调出来,求助

2025/1/4 14:24
加载中...