hdu2063(二分图匹配 匈牙利算法模板题)

来源:互联网 发布:sql库位库存分配 编辑:程序博客网 时间:2024/05/21 18:33

存一下模板

#include<bits/stdc++.h>using namespace std;const int maxn=505;int G[maxn][maxn],vis[maxn],pre[maxn];int k,m,n,temp1,temp2,sum;bool found(int x){    for (int i = 1;i <= n;i++)    {        if(G[x][i]&&!vis[i])        {            vis[i]=1;            if(pre[i] == 0||found(pre[i]))            {                pre[i] = x;                return 1;            }        }    }    return 0;}int main(){    while (~scanf("%d",&k)&&k)    {        memset(G,0,sizeof G);        memset(pre,0,sizeof pre);        scanf("%d %d",&m,&n);        sum=0;        for (int i = 0;i < k;i ++)        {            scanf("%d %d",&temp1,&temp2);            G[temp1][temp2] = 1;        }        for (int i = 1;i <= m;i ++)        {            memset(vis,0,sizeof vis);            if (found(i))            {                sum++;            }        }        printf("%d\n",sum);    }}
原创粉丝点击