zoukankan      html  css  js  c++  java
  • 【CODEVS2776】寻找代表元

    Description

    广州二中苏元实验学校一共有n个社团,分别用1到n编号。
    广州二中苏元实验学校一共有m个人,分别用1到m编号。每个人可以参加一个或多个社团,也可以不参加任何社团。
    每个社团都需要选一个代表。谦哥希望更多的人能够成为代表。

    Input

    第一行输入两个数n和m。
    以下n行每行若干个数,这些数都是不超过m的正整数。其中第i行的数表示社团i的全部成员。每行用一个0结束。

    Output

    输出最多的能够成为代表的人数。

    Sample Input

    4 4
    1 2 0
    1 2 0
    1 2 0
    1 2 3 4 0

    Sample Output

    3

    Hint

    各个测试点1s

    n,m<=200

     1 #include<iostream>
     2 #include<cstring>
     3 using namespace std;
     4 int a[210][210];
     5 int link1[210]={0};
     6 bool vis[210]={false};
     7 int n,m,x,ans;
     8 bool find(int x)
     9 {
    10     for (int i=1;i<=m;i++)
    11         if (a[x][i] && !vis[i])
    12         {
    13             vis[i]=true;
    14             if (link1[i]==0 || find(link1[i]))//递归 
    15             {
    16                 link1[i]=x;
    17                 return true;
    18             }
    19         }
    20     return false;
    21 }
    22 int main()
    23 {
    24     cin>>n>>m;
    25     for (int i=1;i<=n;i++)
    26     {
    27         while (1)
    28         {
    29             cin>>x;
    30             if (x) a[i][x]=1;
    31             else break;
    32         }
    33     }
    34     ans=0;
    35     for (int i=1;i<=n;i++)
    36     {
    37         memset(vis,0,sizeof(vis));//每一步查找前清空 
    38         if (find(i)) ans++;
    39     }
    40     cout<<ans;
    41     return 0;
    42 }
  • 相关阅读:
    day09
    初识socket
    java正则表达式
    Servlet 3.0 新特性详解
    spring利用PropertiesFactoryBean管理属性配置文件properties
    MyBatis获取插入记录的自增主键
    深入学习理解java-ThreadLocal
    Mybatis批量执行语句
    MyBatis使用二级缓存
    编码的理解
  • 原文地址:https://www.cnblogs.com/liumengyue/p/5186869.html
Copyright © 2011-2022 走看看