Machine Schedule 二分图最大匹配基础题

来源:互联网 发布:中老年棉麻女装淘宝网 编辑:程序博客网 时间:2024/04/29 11:26
#include <stdio.h>#include <cstring>bool map[101][101];bool vis[101];int match[101];int n,m,k;bool find(int x){    for(int i=1;i<=m;i++)    {        if(!vis[i]&&map[x][i])        {            vis[i]=true;            if(find(match[i])||match[i]==-1)            {                match[i]=x;                return true;            }        }    }    return false;}int main(){    int a,b,c;    while(scanf("%d",&n)==1&&n)    {        memset(match,-1,sizeof(match));        memset(map,false,sizeof(map));        scanf("%d%d",&m,&k);        while(k--)        {            scanf("%d%d%d",&a,&b,&c);            map[b][c]=true;        }        int count=0;        for(int i=1;i<=n;i++)        {            memset(vis,false,sizeof(vis));            if(find(i)) count++;        }        printf("%d\n",count);    }    return 0;} 

原创粉丝点击