标签:hdoj matrix
3 3 0 0 0 1 0 1 0 1 0 0
2
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; int map[110][110],vis[110]; int N,M,point[110]; bool DFS(int a){ for(int i=0;i<M;++i){ if(!vis[i]&&map[a][i]){ vis[i]=1; if(point[i]<0||DFS(point[i])){ point[i]=a; return true; } } } return false ; } int count(){ int ans=0; for(int i=0;i<N;++i){ memset(vis,0,sizeof(vis)); if(DFS(i)){ ans++; } } return ans; } int main() { int i,j; while(scanf("%d",&N),N){ cin>>M; memset(point,-1,sizeof(point)); memset(map,0,sizeof(map)); for(i=0;i<N;++i){ for(j=0;j<M;++j){ cin>>map[i][j]; } } cout<<count()<<endl; } return 0; }
标签:hdoj matrix
原文地址:http://blog.csdn.net/r1986799047/article/details/44497443