感觉问题应该是dfs的前两句,但又觉得没什么问题,5,7WA,8,9,10TLE
#include<stdlib.h>
#define maxn 505
int mat[maxn][maxn], match[maxn], n, m;
int dfs(int u, int t){
for(int i = t; i <= m; i++)
if(mat[u][i] && (!match[i] || dfs(match[i], i + 1))){
match[i] = u;
return 1;
}
return 0;
}
int main(){
int e, u, v;
scanf("%d%d%d", &n, &m, &e);
for(int i = 1; i <= e; i++){
scanf("%d%d", &u, &v);
mat[u][v] = 1;
}
int ans = 0;
for(int i = 1; i <= n; i++)
if(dfs(i, 1)) ans++;
printf("%d", ans);
return 0;
}