博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codevs2776 寻找代表元
阅读量:6339 次
发布时间:2019-06-22

本文共 2472 字,大约阅读时间需要 8 分钟。

2776 寻找代表元

  时间限制: 1 s

 空间限制: 256000 KB
 题目等级 : 黄金 Gold
 
 
题目描述 
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

分类标签 Tags 

 

题解:裸二分图匹配不解释

1 type 2     point=^node; 3     node=record 4                g:longint; 5                next:point; 6     end; 7 var 8    i,j,k,l,m,n:longint; 9    c,f:array[0..1000] of longint;10    a:array[0..1000] of point;11 procedure add(x,y:longint);inline;12           var p:point;13           begin14                new(p);15                p^.g:=y;16                p^.next:=a[x];17                a[x]:=p;18           end;19 function check(x:longint):boolean;inline;20          var p:point;21          begin22               p:=a[x];23               while p<>nil do24                     begin25                          if f[p^.g]<>i then26                             begin27                                  f[p^.g]:=i;28                                  if c[p^.g]=0 then29                                     begin30                                          c[p^.g]:=x;31                                          exit(true);32                                     end33                                  else if check(c[p^.g]) then34                                       begin35                                            c[p^.g]:=x;36                                            exit(true);37                                       end;38                             end;39                          p:=p^.next;40                     end;41               exit(false);42          end;43 44 {
$IFDEF WINDOWS}{
$R wiki2776.rc}{
$ENDIF}45 46 begin47 readln(n,m);48 for i:=1 to n do49 begin50 a[i]:=nil;51 while not(eoln) do52 begin53 read(j);54 if j=0 then break;55 add(i,j);56 end;57 readln;58 end;59 fillchar(c,sizeof(c),0);60 fillchar(f,sizeof(f),0);l:=0;61 for i:=1 to n do62 if check(i) then inc(l);63 writeln(l);64 readln;65 end.66

 

转载于:https://www.cnblogs.com/HansBug/p/4234893.html

你可能感兴趣的文章
<亲测>CentOS中yum安装ffmpeg
查看>>
【分享】马化腾:产品设计与用户体验
查看>>
【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练
查看>>
全智慧的网络:思科十年来最具颠覆性的创新
查看>>
怎样将现有应用迁移到 VMware NSX
查看>>
赛门铁克收购以色列移动安全初创公司Skycure 旨在构建网络安全防御平台
查看>>
《Photoshop蒙版与合成(第2版)》目录—导读
查看>>
“最佳人气奖”出炉!4月27号,谁能拿到阿里聚安全算法挑战赛的桂冠?
查看>>
《网页美工设计Photoshop+Flash+Dreamweaver从入门到精通》——2.6 图层与图层样式...
查看>>
《iOS组件与框架——iOS SDK高级特性剖析》——第2章,第2.7节获取线路
查看>>
Spring中 @Autowired标签与 @Resource标签 的区别
查看>>
人工智能凭什么毁灭人类
查看>>
[LeetCode]--349. Intersection of Two Arrays
查看>>
tomcat启动报错
查看>>
mongorocks引擎原理解析
查看>>
oracle11g R2 RAC卸载grid
查看>>
ES6 结构和扩展运算符
查看>>
王利阳:电商大促 决战6.18
查看>>
kafka消息传输的事务定义
查看>>
实现LNMMP
查看>>