var m,n,i,j,x1,x2,ans:longint;
g:array[1..10000,1..10000]of boolean;
y:array[1..10000]of boolean;
link:array[1..10000]of longint;
function find(v:longint):boolean;
var i:longint;
begin
for i:=1 to m do if g[v,i] and (not y[i]) then //v i有根 且无访问
begin
y[i]:=true; //设为访问
if (link[i]=0)or find(link[i]) then //无与i相连的x 有轨
begin
link[i]:=v; find:=true; exit;
end;
end;
find:=false;
end;
begin
//read the graph into array g[][]
readln(n,m); //renshu 5 piao 300
for i:=1 to n do
begin
read(x1);
for j:=1 to x1 do
begin
read(x2); g[x2,i]:=true; g[i,x2]:=true; //[x,y] x piao y renshu
end;
end;
for i:=1 to n do
begin
fillchar(y,sizeof(y),0);//无访?youwu fangwen
if find(i) then inc(ans);//有无轨
end;
write(ans);
end.
read(x2); g[x2,i]:=true; g[i,x2]:=true; //[x,y] x piao y renshu
这句错了,g[x2,i]:=true;这个不用的,打了就错了