zoukankan      html  css  js  c++  java
  • COURSES(poj 1469)

    题意:

    给你p门课程和n个学生,一个学生可以选0门,1门,或者多门课程,现在要求一个由p个学生组成的集合,满足下列2个条件:

    1.每个学生选择一个不同的课程

    2.每个课程都有不同的代表

    如果满足,就输出YES

    否则,输出NO

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #define M 310
    using namespace std;
    int used[M],belong[M],a[M][M],p,n;
    int find(int i)
    {
        for(int j=1;j<=n;j++)
          if(!used[j]&&a[i][j])
          {
              used[j]=1;
              if(!belong[j]||find(belong[j]))
              {
                  belong[j]=i;
                  return 1;
            }
          }
        return 0;
    }
    int main()
    {
        int T;
        scanf("%d",&T);
        while(T--)
        {
            memset(a,0,sizeof(a));
            memset(belong,0,sizeof(belong));
            memset(used,0,sizeof(used));
            scanf("%d%d",&p,&n);
            for(int i=1;i<=p;i++)
            {
                int x,y;
                scanf("%d",&x);
                for(int j=1;j<=x;j++)
                {
                    scanf("%d",&y);
                    a[i][y]=1;
                }
            }
            int tot=0;
            for(int i=1;i<=p;i++)
              if(find(i))
              {
                  memset(used,0,sizeof(used));
                  tot++;
              }
            if(tot==p)printf("YES
    ");
            else printf("NO
    ");
        }
        return 0;
    }
    View Code
  • 相关阅读:
    JBuilder链接sql server数据库
    各种数据库连接代码(java)
    各种数据库连接代码的测试类(java)
    简单数据查询语句
    Oracle卸载
    Java字符串转换
    静态类示例
    授权对象的检查
    BAPI
    clear、REFRESH、free区别
  • 原文地址:https://www.cnblogs.com/harden/p/5632347.html
Copyright © 2011-2022 走看看