Codevs2776 寻找代表元
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 begin 14 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 begin 22 p:=a[x]; 23 while p<>nil do 24 begin 25 if f[p^.g]<>i then 26 begin 27 f[p^.g]:=i; 28 if c[p^.g]=0 then 29 begin 30 c[p^.g]:=x; 31 exit(true); 32 end 33 else if check(c[p^.g]) then 34 begin 35 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 begin 47 readln(n,m); 48 for i:=1 to n do 49 begin 50 a[i]:=nil; 51 while not(eoln) do 52 begin 53 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 do 62 if check(i) then inc(l); 63 writeln(l); 64 readln; 65 end. 66
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)