题目描述 Description

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

输入描述 Input Description

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

输出描述 Output Description

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

样例输入 Sample Input

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

样例输出 Sample Output

3

数据范围及提示 Data Size & Hint

各个测试点1s

数据范围
n,m<=200

(。・_・。)ノ裸的匈牙利算法,主要用的思想就是递归;

贴一下CSDN上一个介绍匈牙利算法的帖子,很容易理解

趣写算法系列之--匈牙利算法

放上代码(σ`д′)σ

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m;
bool join[][];//join[i][j]记录j学生是否加入i社团;
bool v[];//该学生是否已经判断过;
bool r[];//该社团能否找到一个不重复的代表;
int stu[];//记录学生代表的社团编号;
bool find(int x)
{
for(int i=;i<=m;i++)
{
if(join[x][i]&&!v[i])//如果有学生加入该社团并且这个学生没有判断过(如果判断过的话没有必要再判断了)
{
v[i]=;
if(stu[i]==||find(stu[i]))//该学生之前代表的社团还能找到别的学生作为代表;
{
stu[i]=x;
return true;
}
}
}
return false;
}
int main()
{
scanf("%d%d",&n,&m);
memset(join,,sizeof(join));
for(int i=;i<=n;i++)
{
int j=;
while(j!=)
{
scanf("%d",&j);
join[i][j]=;
}
}
memset(stu,,sizeof(stu));
int ans=;
for(int i=;i<=n;i++)
{
memset(v,,sizeof(v));
r[i]=find(i);
if(r[i])//记录能找到的社团数量,即不重复的代表数量;
{
ans++;
}
}
printf("%d",ans);
return ;
}

【codevs】2776寻找代表元的更多相关文章

  1. 匈牙利算法 codevs 2776 寻找代表元

    codevs 2776 寻找代表元  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题目描述 Description 广州二中苏元实验学校一共有n个社团,分别用 ...

  2. Codevs 2776 寻找代表元(二分图匹配)

    2776 寻找代表元 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题目描述 Description 广州二中苏元实验学校一共有n个社团,分别用1到n编号. 广州二 ...

  3. codevs 2776 寻找代表元

     时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold     题目描述 Description 广州二中苏元实验学校一共有n个社团,分别用1到n编号.广州二中苏元实验 ...

  4. 【二分图】【最大匹配】【匈牙利算法】CODEVS 2776 寻找代表元

    裸的匈牙利,存模板. #include<cstdio> #include<vector> #include<cstring> using namespace std ...

  5. codevs.cn 2776寻找代表元 最大流解法

    网址:http://codevs.cn/problem/2776/ 题目大意: n个社团,m个人,每个社团可以有一个人担任代表,每个人可以担任多个代表,问最多有多少人是代表. 思路:可以建一个图,然后 ...

  6. Codevs2776 寻找代表元

    2776 寻找代表元 时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold    题目描述 Description 广州二中苏元实验学校一共有n个社团,分别用1到n编号 ...

  7. CJOJ 1943 【重庆八中模拟赛】寻找代表元(二分图最大匹配)

    CJOJ 1943 [重庆八中模拟赛]寻找代表元(二分图最大匹配) Description 八中一共有n个社团,分别用1到n编号. 八中一共有m个人,分别用1到m编号.每个人可以参加一个或多个社团,也 ...

  8. RQNOJ PID141 / 寻找代表元 [2017年6月计划 二分图01]

    PID141 / 寻找代表元 ☆ 提交你的代码 查看讨论和题解 1分前 我的状态 已通过 2017-06-28 21:03:46 运行耗时:31 ms 运行内存:28048 KB 查看最后一次评测记录 ...

  9. 寻找代表元(codevs 2776)

    题目描述 Description 广州二中苏元实验学校一共有n个社团,分别用1到n编号.广州二中苏元实验学校一共有m个人,分别用1到m编号.每个人可以参加一个或多个社团,也可以不参加任何社团.每个社团 ...

随机推荐

  1. 20个热门jQuery的提示和技巧

    以下是一些非常有用的jQuery提示和所有jQuery的开发技巧. 1.优化性能复杂的选择 查询DOM中的一个子集,使用复杂的选择时,大幅提高了性能: var subset = $("&qu ...

  2. Win8 App使用Listview的简单方法

    这是Win8 App神圣不可侵犯的头文件: <head> <meta charset="utf-8"> <title>ListViewExamp ...

  3. MS sqlserver 获取某月某年的天数

    --定义传入时间 ) set @datetime='2012-02-01' --定义月的天数 declare @dayCountM int --定义年的天数 declare @dayCountY in ...

  4. 读书笔记-Coding faster(英文版)

    读书笔记-Coding faster(英文版) Getting More Productive with Microsoft visual Studio Author: Zain Naboulsi S ...

  5. DEV GridControl导出到Excel或打印

    //方法1SaveFileDialog fileDialog = new SaveFileDialog(); fileDialog.Title = "导出Excel"; fileD ...

  6. asp.net mvc 上传图片流存服务器

    foreach (var file in Request.Files) { ]); using (FileStream fs = new FileStream(pathSrc, FileMode.Cr ...

  7. 反编译C#的dll文件并修改,再重新生成dll

    1.把dll文件导入到ildasm工具中,ildasm是由微软提供的.net程序反编译工具,位于“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A ...

  8. Android ImageView图片自适应

    网络上下载下来的图片自适应:android:adjustViewBounds="true"(其详细解释在下面) <ImageView     android:id=" ...

  9. 解决Qt4.8.6+VS2010运行程序提示 FTH: (6512): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes

    这个问题偶尔碰到两次,现在又遇上了,解决办法如下: 打开注册表,设置HKLM\Software\Microsoft\FTH\Enabled 为0 打开CMD,运行Rundll32.exe fthsvc ...

  10. VS2013关于“当前不会命中断点源代码与原始版本不同”的BUG

    文件明明没有动过,竟然一直给我这种提示! 解决方法:将出问题的文件用notepad打开,然后另存为Unicode编码,覆盖原来的文件. 网上另外有一种办法是:通过重新格式化出问题的源文件亦可以解决,即 ...