讨论 / 我的朋友的敌人是不是我的敌人?
Alexa19970211 2012-10-12 07:22:00
点我顶贴 收藏 删除
如果可以这样理解的话测试数据必然有错!

var

r,f:array[1..1000]of longint;

ch:char;

i,p,q,n,m,ans:longint;

function find(x:longint):longint;

begin

if f[x]=0 then exit(x);

find:=find(f[x]);

f[x]:=find;

end;

procedure union(x,y:longint);

var

a,b:longint;

begin

if x=y then exit;

a:=find(x);b:=find(y);

if a<>b then f[b]:=a;

end;

begin

fillchar(f,sizeof(f),0);fillchar(r,sizeof(r),0);ans:=0;

readln(n);

readln(m);

for i:=1 to m do begin

readln(ch,p,q);

if ch='F' then union(p,q)

//本来我在这里加了

if r[p]=0 then r[p]:=r[q];

if r[q]=0 then r[q]:=r[p];

这两句是为了防止p,q中的某一个是第一次出现而没有记录其敌人集合

可是只过了4个点,可是删掉这两句就AC了!很显然测试数据有错.

//

else

begin

if r[p]=0 then r[p]:=q;

if r[q]=0 then r[q]:=p;

union(p,r[q]);

union(q,r[p]);

end;

end;

for i:=1 to n do

if f[i]=0 then inc(ans);

writeln(ans);

readln;

end.

求神牛解释

#1 刘载清@2012-10-12 07:22:00
回复 删除
题目按照实际是绝对错的

Maybe~下面是我的个人理解~不代表rqnoj网站的观点~

[color=red]三国鼎立[/color],三国[color=green]互为敌人[/color],[color=blue]敌人的敌人[/color]明明是[color=pink]敌人[/color]啊~

按照题目来说~[color=red]敌人的敌人[/color]~变成[color=green]朋友[/color]了~[color=pink]汗[/color]~

#2 小康同志@2013-11-19 20:50:50
回复 删除
这是两国鼎力
#3 yearwhk@2013-11-21 04:56:02
回复 删除
我只能说亲们RQ3不支持颜色。。
#4 NEW WORLD@2013-11-23 21:31:23
回复 删除
【color=green】三国真不好说
#5 MichaelYoung@2018-02-07 04:28:56
回复 删除
由题得,3,5是朋友,为一个团伙;2,4,6是朋友,为一个团伙,那么还剩1;按题意,1也自立一伙。若1与3,5为敌,则与2,4,6一伙或1与2,4,6为敌,则与3,5一伙,answer始终为2.
查看更多回复
提交回复