请大家看看这个数据

数据如下:

4

2 0

3 0

这个数据也就是说,1愿意与2和3交流,2愿意和3交流,又由于交流是单向的,(即2不一定愿意和1交流,3不一定愿意和2与1交流),那么对于这个数据至少要分4组,但是一个能够AC的程序,却输出2!

程序如下:(按道理讲这个程序应该无法AC,可是偏偏AC了,我很纳闷!)

program p1022;

var a:array[1..200,1..200]of integer;

i,k,j,m,n,q:integer;

v:array[1..200]of boolean;

procedure dfs(i:integer);

var j:integer;

begin

v[i]:=true;

dec(q);

for j:=1 to n do if (a=1)and(not v[j]) then dfs(j);

end;

begin

assign(input,'p1022.in');

reset(input);

readln(n);

q:=n;

fillchar(a,sizeof(a),0);

for i:=1 to n do

begin

read(j);

while j0 do

begin

a:=1;

read(j);

end;

end;

k:=0;

i:=1;

repeat

if not v[i] then

begin

dfs(i);

inc(k);

end;

inc(i);

until q=0;

writeln(k);

end.

1 条评论

  • 1

信息

ID
1022
难度
4
分类
图结构 点击显示
标签
递交数
4330
已通过
1985
通过率
46%
被复制
14
上传者