zoukankan      html  css  js  c++  java
  • Day66:HDU2063过山车二分图最大匹配模板题

    题意:中文题,自己看吧

    思路:二分图最大匹配模板题目

    之前写的二分图是vector写的,https://www.cnblogs.com/OFSHK/p/12228048.html

    所以这次上一个数组写的代码,

    也算是一个模板

    注意一下清空和输入格式

    一定要注意清空啊,不然一直WAWAWA!!!!

    AC代码:

     1 #include<stdio.h>
     2 #include<iostream>
     3 #include<queue>
     4 #include<string.h>
     5 using namespace std;
     6 #define inf 0x3f3f3f3f
     7 
     8 const int N=550;
     9 int k,woman,man;
    10 int e[N][N],match[N];
    11 bool book[N];
    12 
    13 int dfs(int x)
    14 {
    15     for(int i=1; i<=man; i++)
    16     {
    17         if(book[i]==0&&e[x][i])
    18         {
    19             book[i]=1;
    20             if(match[i]==0||dfs(match[i]))
    21             {
    22                 match[i]=x;
    23                 return 1;
    24             }
    25         }
    26     }
    27     return 0;
    28 }
    29 
    30 int main()
    31 {
    32     //while(~scanf("%d %d %d",&k,&woman,&man))
    33     while(~scanf("%d",&k)&&k)
    34     {
    35         scanf("%d %d",&woman,&man);
    36         memset(e,0,sizeof(e));//注意清空,不然WA
    37         memset(match,0,sizeof(match));//清空。。
    38         for(int i=1; i<=k; i++)
    39         {
    40             int x,y;
    41             scanf("%d %d",&x,&y);
    42             e[x][y]=1;
    43         }
    44         int ans=0;
    45         for(int i=1; i<=woman; i++)
    46         {
    47             memset(book,0,sizeof(book));//注意清空位置
    48             if(dfs(i))
    49                 ans++;
    50         }
    51         printf("%d\n",ans);
    52     }
    53     return 0;
    54 }
    View Code
  • 相关阅读:
    poj 2674 Linear world
    poj 3185 The Water Bowls
    The Largest Clique (uva11324)
    Proving Equivalences (LA 4287)
    强联通分量( HihoCoder 1185 )
    求点双联通分量(HihoCoder
    求桥,割点(HihoCoder
    欧拉回路
    uva10054
    表达式树(公共表达式消除 uva 12219)
  • 原文地址:https://www.cnblogs.com/OFSHK/p/12656019.html
Copyright © 2011-2022 走看看