洛谷 3386 二分图匹配模板 匈牙利算法

来源:互联网 发布:淘宝女运动套装大吗 编辑:程序博客网 时间:2024/06/17 17:42

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

模板

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