zoukankan      html  css  js  c++  java
  • hdu_2063,二分图最大匹配的学习

    http://acm.hdu.edu.cn/showproblem.php?pid=2063

    也拿这个当模板吧。。。

    #include<cstdio>
    #include<cstring>
    
    int k, m, n;
    bool g[510][510];
    int visit[510], link[510];
    bool dfs(int u){
        for(int i = 1; i <= n; i ++){
            if(g[u][i] && !visit[i]){
                visit[i] = 1;
                if(link[i] == -1 || dfs(link[i])){
                    link[i] = u;
                    return true;
                }
            }
        }
        return false;
    }
    int max_match(){
        memset(link, -1, sizeof link);
        int ans = 0;
        for(int i = 1; i <= m; i ++){
            memset(visit, 0, sizeof visit);
            if(dfs(i))
              ans ++;
        }
        return ans;
    }
    int main(){
        while(scanf("%d", &k), k){
            scanf("%d%d", &m, &n);
            memset(g, 0, sizeof g);
            while(k --){
                int u, v;
                scanf("%d%d", &u, &v);
                g[u][v] = true;
            }
            printf("%d\n", max_match());
        }
        return 0;
    }

    就是不断的DFS。。

  • 相关阅读:
    bzoj3946
    bzoj3065
    bzoj1500
    bzoj1233
    bzoj1089
    bzoj1087
    bzoj1086
    if语句之猜拳
    if语句判断闰年、平年
    if语句判断身高体重是否标准
  • 原文地址:https://www.cnblogs.com/louzhang/p/2634846.html
Copyright © 2011-2022 走看看