poj2239

来源:互联网 发布:澳门十月初五饼家淘宝 编辑:程序博客网 时间:2024/05/17 06:02
#include<iostream>#include<stdio.h>#include<string.h>#include<limits.h>#define MAX 501int p,n;bool map[MAX][MAX];bool visit[MAX];int match[MAX];bool find(int k){    int i,j;    for(i=1;i<=n;i++)    {        if(map[k][i]&&visit[i]==false)        {            visit[i]=true;            if(match[i]==0||find(match[i]))            {                match[i]=k;                return true;            }        }    }    return false;}int hungary(){    memset(match,0,sizeof(match));    int sum=0;    for(int i=1;i<=p;i++)    {        memset(visit,0,sizeof(visit));        if(find(i))          sum++;    }    return sum;}int main(){    int t,i,j,k;    while(scanf("%d",&p)!=EOF)    {memset(map,0,sizeof(map));n=0;for(i=1;i<=p;i++){scanf("%d",&k);while(k--){scanf("%d%d",&t,&j);map[i][(t-1)*12+j]=true;if(n<(t-1)*12+j)n=(t-1)*12+j;}}printf("%d\n",hungary());}}

原创粉丝点击