本文共 805 字,大约阅读时间需要 2 分钟。
// ShellDawn// POJ1469// No.31#include#include #include #include #include #include #define MM(x,y) memset(x,y,sizeof(x))#define INF 0x3f3f3f3f#define LL long longusing namespace std;//int E[305][105];int N,P;int Link[105],V[105];bool dfs(int x){ for(int i=1;i<=P;i++){ if(V[i] == 0 && E[x][i] == 1){ V[i] = 1; int L = Link[i]; if(L == 0 || dfs(L)){ Link[i] = x; return true; } } } return false;}int hungary(){ int ans = 0; MM(Link,0); for(int i=1;i<=N;i++){ MM(V,0); if(dfs(i)) ans++; } return ans;}int main(){ int T; scanf("%d",&T); while(T--){ MM(E,0); scanf("%d%d",&P,&N); for(int i=1;i<=P;i++){ int t; scanf("%d",&t); while(t--){ int stu; scanf("%d",&stu); E[stu][i] = 1; } } if(hungary() == P) puts("YES"); else puts("NO"); } return 0;}
转载地址:http://nnwji.baihongyu.com/