zoukankan      html  css  js  c++  java
  • poj 1274 基础二分最大匹配

    #include<stdio.h>
    #include<string.h>
    #define N 300
    #define inf 0x3fffffff
    int mark[N],link[N],n,m;
    int map[N][N];
    int find(int u) {
    int i;
    for(i=1;i<=m;i++) {
        if(!mark[i]&&map[u][i]) {
            mark[i]=1;
            if(link[i]==-1||find(link[i])) {
                link[i]=u;
                return 1;
            }
        }
    }
    return 0;
    }
    int main() {
        int i,k,s,t;
        while(scanf("%d%d",&n,&m)!=EOF) {
            memset(map,0,sizeof(map));
            memset(link,-1,sizeof(link));
            for(i=1;i<=n;i++) {
                scanf("%d",&s);
                while(s--) {
                    scanf("%d",&t);
                    map[i][t]=1;
                }
            }
            k=0;
        for(i=1;i<=n;i++) {
            memset(mark,0,sizeof(mark));
            k+=find(i);
        }
        printf("%d ",k);
        }
    return 0;
    }

  • 相关阅读:
    bash特性
    FHS 层级文件系统
    环境变量的问题
    linux认识
    搜索引擎的使用
    nginx
    部署操作手册
    git
    添加tag
    pycharm中使用git
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410789.html
Copyright © 2011-2022 走看看