poj 1274

来源:互联网 发布:数据分析介绍 编辑:程序博客网 时间:2024/06/16 03:37

裸的二分图,但我还是WA了,注意这是两个分开的集合n,m;

#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n,m;int link[600]={};bool data[600][600]={};bool visit[600]={};bool dfs(int x) {    ***// 习惯   visit[x] = 1;  然而x与y不是同一个集合。WA哭了***    for(int i = 1; ***i <= m;*** i++) {        if(!visit[i] && data[x][i]) {            visit[i] = 1;            if(link[i] == 0 || dfs(link[i])) {                link[i] = x;                return 1;            }        }    }    return 0;}int main() {    while(scanf("%d %d",&n,&m) != EOF) {        int x,y;        memset(data,0,sizeof(data));        memset(link,0,sizeof(link));        for(int i = 1; i <= n; i++) {            scanf("%d",&x);            for(int j = 1; j <= x; j++) {                scanf("%d",&y);                data[i][y] = 1;            }        }        int sum = 0;        for(int i = 1; i <= n; i++) {            memset(visit,0,sizeof(visit));            if(dfs(i))              sum++;        }        printf("%d\n",sum);    }    return 0;}
0 0