洛谷 1894 [USACO4.2]完美的牛栏The Perfect Stall

来源:互联网 发布:淘宝什么推广效果好 编辑:程序博客网 时间:2024/05/22 15:52

题目:
https://www.luogu.org/problem/show?pid=1894

裸的二分图最大匹配;

直接跑匈牙利;

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAXN=2001;int n,m,tot,cnt;int fst[MAXN],nxt[MAXN],sc[MAXN];bool vis[MAXN];struct hh{    int from,to;}ma[MAXN<<1];void build(int f,int t){    tot++;    ma[tot]=(hh){f,t};    nxt[tot]=fst[f];    fst[f]=tot;    return;}bool dfs(int x){    for(int i=fst[x];i;i=nxt[i])    {        int v=ma[i].to;        if(!vis[v])        {            vis[v]=1;            if(!sc[v] || dfs(sc[v]))            {                sc[v]=x;                return true;            }        }    }    return false;}void solve(){    int num,x;    scanf("%d%d",&n,&m);    for(int i=1;i<=n;i++)    {        scanf("%d",&num);        while(num--)        {            scanf("%d",&x);            build(i,x);        }    }    for(int i=1;i<=n;i++)    {        memset(vis,0,sizeof(vis));        if(dfs(i)) cnt++;    }    cout<<cnt;    return;}int main(){    solve();    return 0;}
阅读全文
1 0
原创粉丝点击