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