怀疑本题数据
查看原帖
怀疑本题数据
1010629
qwqSW楼主2024/8/17 17:03

先看这段代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
const int N=520;
const int M=520;
int l,r,m,cnt,vis[N],pipei[N];
vector<int> g[N];
int dfs(int x){
	for(int i=0;i<g[x].size();i++){
		int v=g[x][i];
		if(vis[v]) continue;
		vis[v]=1;
		if(!pipei[v]||dfs(v)){
			pipei[v]=x;
			return 1;
		}
	}
	return 0;
}
int main(){
	scanf("%d%d%d",&l,&r,&m);
	for(int i=1;i<=m;i++){
		int u,v;
		scanf("%d%d",&u,&v);
		g[u].push_back(v);
	}
	for(int i=1;i<=l;i++){
		cnt+=dfs(i);
		memset(vis,0,sizeof vis);
	}
	printf("%d",cnt);
	return 0;
}

明显dfs核心部分错写成if(!pipei[v]||dfs(v))了
然后这都能60。。。这题数据很魔幻

2024/8/17 17:03
加载中...