标签:als map ret bsp eof main 二分 turn bool
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 int match[501],n,m,a,b,ans=0; 6 bool used[501],map[501][501]; 7 bool check(int u){ 8 for(int i=1;i<=m;i++){ 9 if(map[u][i]&&!used[i]){ 10 used[i]=true; 11 if(!match[i]||check(match[i])){ 12 match[i]=u; 13 return true; 14 } 15 } 16 } 17 return false; 18 } 19 int main(){ 20 memset(map,0,sizeof(map)); 21 memset(match,0,sizeof(match)); 22 scanf("%d%d",&n,&m); 23 for(int i=1;i<=m;i++){ 24 scanf("%d%d",&a,&b); 25 map[a][b]=true; 26 } 27 for(int i=1;i<=n;i++){ 28 memset(used,0,sizeof(used)); 29 if(check(i))ans++; 30 } 31 printf("%d",ans); 32 }
标签:als map ret bsp eof main 二分 turn bool
原文地址:https://www.cnblogs.com/dcdcbigbig/p/8945139.html