• poj 1274The Perfect Stall解题报告


    链接:http://poj.org/problem?id=1274

    这道题是简单的二分图匹配问题,匈牙利算法,也是自己的第一道二分图匹配,一直搞不明白匈牙利算法的原理,但是看了程序就有些明白了,看来有的时候不仅仅要去看理论啊,做题也会加深理解的

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 #define N 205
     4 bool map[N][N];
     5 bool used[N];
     6 int match[N];
     7 int n,m;
     8 bool dfs(int u)
     9 {
    10     int i,v;
    11     for(v=1;v<=m;v++)
    12     {
    13         if(!used[v]&&map[u][v])
    14         {
    15             used[v]=true;
    16             if(match[v]==0||dfs(match[v]))
    17             {
    18                 match[v]=u;
    19                 return true;
    20             }
    21         }
    22     }
    23     return false;
    24 }
    25 void init()
    26 {
    27     memset(map,0,sizeof(map));
    28     memset(used,0,sizeof(used));
    29     memset(match,0,sizeof(match));
    30 }
    31 int main()
    32 {
    33     int i,j,k;
    34     int num,temp;
    35     while(scanf("%d%d",&n,&m)!=EOF)
    36     {
    37         init();
    38         for(i=1;i<=n;i++)
    39         {
    40             scanf("%d",&num);
    41             for(j=0;j<num;j++)
    42             {
    43                 scanf("%d",&temp);
    44                 map[i][temp]=true;
    45             }
    46         }
    47         int sum=0;
    48         for(i=1;i<=n;i++)
    49         {
    50             memset(used,0,sizeof(used));
    51             if(dfs(i))
    52             sum++;
    53         }
    54         printf("%d\n",sum);
    55     }
    56     return 0;
    57 }
  • 相关阅读:
    Redis-Sentinel 哨兵
    virtualenv and virtualenvwrapper
    C/C++中extern关键字详解
    C++ 中文拼音排序方法。
    vector排序
    VS2013 Ctrl+Shift+F 没反应
    PostMessage 解析
    CTextUI 文本控件 显示数字方法
    SetTimer API函数
    CEditUI 控件使用
  • 原文地址:https://www.cnblogs.com/caozhenhai/p/2467651.html
Copyright © 2020-2023  润新知