标签:|| div link name bsp 匹配 include algo for
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 using namespace std; 6 int k,m,n;//m :女生人数 7 const int N=550; 8 int link[N][N]; 9 bool vis[N]; 10 int g[N];//g[i]=j i男 j女 11 bool match(int x){ 12 for(int i=1;i<=n;i++)//男生 13 { 14 if(link[x][i]&&!vis[i]){ 15 vis[i]=1; 16 if(!g[i]||match(g[i])){ 17 //i男还没有匹配女生或者可以给该男生的原配女重新再找对应的 18 //男生 ,那么x(女)就可以匹配i(男)了 19 g[i]=x; 20 return 1; 21 } 22 } 23 } 24 return 0; 25 } 26 int main() 27 { 28 while(~scanf("%d",&k)&&k){ 29 scanf("%d%d",&m,&n); 30 int x,y; 31 memset(vis,0,sizeof(vis)); 32 memset(link,0,sizeof(link)); 33 memset(g,0,sizeof(g)); 34 for(int i=0;i<k;i++) 35 { 36 scanf("%d%d",&x,&y); 37 link[x][y]=1; 38 } 39 int ans=0; 40 for(int i=1;i<=m;i++) 41 { 42 memset(vis,0,sizeof(vis)); 43 if(match(i)){ 44 ans++; 45 } 46 } 47 printf("%d\n",ans); 48 } 49 return 0; 50 }
标签:|| div link name bsp 匹配 include algo for
原文地址:https://www.cnblogs.com/tingtin/p/9310629.html