wa#5,求调
查看原帖
wa#5,求调
1072842
qimuke楼主2024/9/12 08:55
#include<bits/stdc++.h>
using namespace std;
#define inf 100004
#define maxn 505

int s,t,l,k[maxn],ans,cnt,head[maxn],a,b;
int m,n,e1,mp[maxn][maxn];
int x,ask[maxn];
struct edge{
	int u,v,ne;
}e[inf];
void add(int f1,int t1){
	e[++cnt].u=f1;
	e[cnt].v=t1;
	e[cnt].ne=head[f1];
	head[f1]=cnt;
}

int dfs(int b){
	for(int i=b;i!=-1;i=e[i].ne){
//		cout<<e[i].u<<e[i].v<<endl;
		int to=e[i].v;
		if(ask[to])continue;
		ask[to]=1;
		if(k[to]==0||dfs(k[to])){
			k[to]=i;return 1;
		}
	}
	return 0;
}
int main(){
	cin>>n>>m>>e1;
	cnt=0;
	for(int j=0;j<=n;j++)head[j]=-1;
	for(int i=0;i<=m;i++)k[i]=0;
	for(int i=1;i<=e1;i++){
		cin>>a>>b;
		if(a>n||b>m)continue;
		add(a,b);
	}
	ans=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++)ask[j]=0;
		if(dfs(head[i]))ans++;
	}
	cout<<ans<<endl;
}

#5输出230 程序输出229 哪位大佬帮忙看看

2024/9/12 08:55
加载中...