• POJ 1469 ZOJ 1140 Courses 二分图匹配


    继续匈牙利二分匹配,其实我都不知道怎样写匈牙利算法,只是记住了可以这样写,悲哀啊

    唉````

    裸的二分匹配,贴代码:

    View Code
     1 #include <cstdio>
     2 #include <cstring>
     3 #define MAXC 105
     4 #define MAXS 305
     5 bool g[MAXC][MAXS];
     6 bool used[MAXS];
     7 int p,n;
     8 int xx[MAXC],yy[MAXS];
     9 void init()
    10 {
    11     int i,j;
    12     scanf("%d%d",&p,&n);
    13     memset(g,0,sizeof(g));
    14     for(i=0; i<p; ++i)
    15     {
    16         int num,st;
    17         scanf("%d",&num);
    18         for(j=0; j<num; ++j)
    19         {
    20             scanf("%d",&st);
    21             g[i][st]= 1;
    22         }
    23     }
    24 }
    25 bool path(int u)
    26 {
    27     int v;
    28     for(v=1; v<=n; ++v)
    29     {
    30         if(g[u][v] && !used[v])
    31         {
    32             used[v] = 1;
    33             if(yy[v] == -1 || path(yy[v]))
    34             {
    35                 xx[u] = v;
    36                 yy[v] = u;
    37                 return 1;
    38             }
    39         }
    40     }
    41     return 0;
    42 }
    43 void maxMatch()
    44 {
    45     int i;
    46     memset(xx,0xff,sizeof(xx));
    47     memset(yy,0xff,sizeof(yy));
    48     int ans = 0;
    49     for(i=0; i<p; ++i)
    50     {
    51         if(xx[i] == -1)
    52         {
    53             memset(used,0,sizeof(used));
    54             if(path(i))
    55                 ++ans;
    56         }
    57     }
    58     if(ans == p) printf("YES\n");
    59     else        printf("NO\n");
    60 }
    61 int main()
    62 {
    63 //    freopen("in.cpp","r",stdin);
    64     int T;
    65     scanf("%d",&T);
    66     while(T--)
    67     {
    68         init();
    69         maxMatch();
    70     }
    71     return 0;
    72 }
  • 相关阅读:
    服务端集成支付宝踩过的坑RSA、RSA2
    javascript预览图片——IT轮子系列(九)
    winform 写App.config配置文件——IT轮子系列(八)
    登录-添加页面
    登录-Login页面
    登录-控制器
    登录-控制器验证
    登录-dal
    登录-数据库模型
    登录-存储过程
  • 原文地址:https://www.cnblogs.com/allh123/p/3011296.html
Copyright © 2020-2023  润新知