#include <cstdio>#include <iostream>#include <algorithm>#include <queue>#include <cmath>#include <cstring>#include <stack>#include <set>#include <map>#include <vector>using namespace STD;#define INF 0X2FFFFFFF#define LL Long Long#define MAX (A, B) ((a) > (a))? (a):(B)#define MIN (a) < (b))? (a):(B)intN,m;ints =0;intEintcx[205];intcy[205]; vector<int>vec[205];intvis[205];intPathintu) {intSi = Vec[u].size (); for(inti =0; i < si;i++) {intv = vec[u][i];if(!vis[v]) {Vis[v] =1;if((cy[v] = =-1|| Path (Cy[v]))) {Cx[u] = V; CY[V] = u;return 1; } } }return 0;}intMax_match () {memset(cx,-1,sizeof(CX));memset(cy,-1,sizeof(CY));memset(Vis,0,sizeof(VIS));intAns =0; for(inti =1; I <= n;i++) {if(Cx[i] = =-1){memset(Vis,0,sizeof(VIS)); Ans + = path (i); } }returnAns;}intMain () { while(Cin>> n >> m) { for(inti =0; i < n;i++) {vec[i].clear (); } for(inti =1; I <= n;i++) {intGscanf("%d", &g); for(intj =0; J < g;j++) {intXscanf("%d", &x); Vec[i].push_back (x); } }cout<< Max_match () << Endl; }return 0;}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
POJ 1274 maximum matching Hungarian algorithm