Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3358 Accepted Submission(s): 1989

代码:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
const int INF=0x3f3f3f3f;
#define mem(x,y) memset(x,y,sizeof(x))
typedef long long LL;
const int MAXN=110;
int mp[MAXN][MAXN];
int vis[MAXN],link[MAXN];
int N,M;
bool dfs(int x){
for(int i=1;i<=M;i++){
if(!vis[i]&&mp[x][i]){
vis[i]=1;
if(link[i]==-1||dfs(i)){
link[i]=x;return true;
}
}
}
return false;
}
int main(){
int K,x,y;
while(~scanf("%d%d%d",&N,&M,&K)){
mem(mp,0);
while(K--){
scanf("%d%d",&x,&y);
map[x][y]=1;
}
}
return 0;
}
原文:http://www.cnblogs.com/handsomecui/p/4996153.html