• POJ 1469 COURSES(二分图最大匹配)


    题目链接:http://poj.org/problem?id=1469 

    复习了下二分图最大匹配,找了道水题。。

    水题的样例真水,打错一个字母都能过样例。。。。

    关于二分图最大匹配的资料见:http://www.cnblogs.com/pony1993/archive/2012/07/25/2607738.html 

    思路:只要最大匹配数=课程数就OK

    代码:

     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 using namespace std;
     5 const int N=1001;
     6 int n1,n2,k;
     7 int map[N][N],vis[N],link[N];
     8 int find(int x)
     9 {
    10     int i;
    11     for(i=0;i<=n2;i++)
    12     {
    13         if(map[x][i]&&!vis[i])
    14         {
    15             vis[i]=1;
    16             if(link[i]==0||find(link[i]))
    17             {
    18                 link[i]=x;
    19                 return 1;
    20             }
    21         }
    22     }
    23     return 0;
    24 }
    25 int main()
    26 {
    27     int t,i,n,x,sum;
    28     scanf("%d",&t);
    29     while(t--)
    30     {
    31         memset(map,0,sizeof(map));
    32         memset(link,0,sizeof(link));
    33         sum=0;
    34         scanf("%d%d",&n1,&n2);
    35         for(i=1;i<=n1;i++)
    36         {
    37             scanf("%d",&n);
    38             while(n--)
    39             {
    40                 scanf("%d",&x);
    41                 map[i][x]=1;
    42             }
    43         }
    44         for(i=1;i<=n1;i++)
    45         {
    46             memset(vis,0,sizeof(vis));
    47             if(find(i))
    48                 sum++;
    49         }
    50         if(sum==n1)
    51             puts("YES");
    52         else
    53             puts("NO");
    54     }
    55     return 0;
    56 }


  • 相关阅读:
    JS数组及操作方法,堆和栈的概念
    JS变量作用域,浏览器预解析
    JS函数的基本概念
    JS循环语句
    JS程序三大结构及语法语句
    src与href
    JS概念及基本语法
    图片整合技术
    hdu6395 Sequence(分段矩阵快速幂)
    hdu6396 Swordsman(贪心)
  • 原文地址:https://www.cnblogs.com/pony1993/p/2636394.html
Copyright © 2020-2023  润新知