時間限制: 1 s
空間限制: 256000 kb
題目等級 : ** gold
廣州二中蘇元實驗學校一共有n個社團,分別用1到n編號。
廣州二中蘇元實驗學校一共有m個人,分別用1到m編號。每個人可以參加乙個或多個社團,也可以不參加任何社團。
每個社團都需要選乙個代表。謙哥希望更多的人能夠成為代表。
輸入描述 input description
第一行輸入兩個數n和m。
以下n行每行若干個數,這些數都是不超過m的正整數。其中第i行的數表示社團i的全部成員。每行用乙個0結束。
輸出描述 output description
輸出最多的能夠成為代表的人數。
樣例輸入 sample input
4 41 2 0
1 2 0
1 2 0
1 2 3 4 0
樣例輸出 sample output
資料範圍及提示 data size & hint
各個測試點1s
資料範圍
n,m<=200
分類標籤 tags 點此展開
題解:裸二分圖匹配不解釋
1type
2 point=^node;
3 node=record
4g:longint;
5next:point;
6end;7
var8
i,j,k,l,m,n:longint;
9 c,f:array[0..1000] of
longint;
10 a:array[0..1000] of
point;
11procedure
add(x,y:longint);inline;
12var
p:point;
13begin
14new(p);
15 p^.g:=y;
16 p^.next:=a[x];
17 a[x]:=p;
18end;19
function
check(x:longint):boolean;inline;
20var
p:point;
21begin
22 p:=a[x];
23while p<>nil
do24
begin
25if f[p^.g]<>i then
26begin
27 f[p^.g]:=i;
28if c[p^.g]=0
then
29begin
30 c[p^.g]:=x;
31exit(true);
32end
33else
if check(c[p^.g]) then
34begin
35 c[p^.g]:=x;
36exit(true);
37end;38
end;
39 p:=p^.next;
40end;41
exit(false);
42end;43
4445
46begin
47readln(n,m);
48for i:=1
to n do
49begin
50 a[i]:=nil;51
while
not(eoln) do
52begin
53read(j);
54if j=0
then
break;
55add(i,j);
56end;57
readln;
58end
;59 fillchar(c,sizeof(c),0
);60 fillchar(f,sizeof(f),0);l:=0;61
for i:=1
to n do
62if check(i) then
inc(l);
63writeln(l);
64readln;
65end
.66
codevs2776尋找代表元
2776 尋找代表元 時間限制 1 s 空間限制 256000 kb 題目等級 gold 題目描述 description 廣州二中蘇元實驗學校一共有n個社團,分別用1到n編號。廣州二中蘇元實驗學校一共有m個人,分別用1到m編號。每個人可以參加乙個或多個社團,也可以不參加任何社團。每個社團都需要選乙...
尋找代表元 codevs 2776
題目描述 description 廣州二中蘇元實驗學校一共有n個社團,分別用1到n編號。廣州二中蘇元實驗學校一共有m個人,分別用1到m編號。每個人可以參加乙個或多個社團,也可以不參加任何社團。每個社團都需要選乙個代表。謙哥希望更多的人能夠成為代表。輸入描述 input description 第一行...
匈牙利演算法 codevs 2776 尋找代表元
時間限制 1 s 空間限制 256000 kb 題目等級 gold 廣州二中蘇元實驗學校一共有n個社團,分別用1到n編號。廣州二中蘇元實驗學校一共有m個人,分別用1到m編號。每個人可以參加乙個或多個社團,也可以不參加任何社團。每個社團都需要選乙個代表。謙哥希望更多的人能夠成為代表。輸入描述 inpu...