题解 P2252 【取石子游戏】

· · 题解

教练给我们讲了一道有多堆石子,让我们在某一堆添石子,保证先取的人获胜,然后让我们做这道,说差不多。

然而我发现一点关系都没有

好吧,上面都是在扯,这题核心在于一个叫威佐夫博弈的东西

现在要装逼敲黑板了

威佐夫博弈的重要结论是假设两堆石子为(x,y)(其中x<y)当且仅当 时那么先手必败
其实是没有-1这种情况的,单是输出1或0都能骗分
所以得出代码
var a,b,c:longint;
begin
readln(a,b);
if a>b then 
begin     
 a:=a xor b;
 b:=a xor b;
 a:=a xor b; //保证a<b
end;
c:=b-a;
c:=trunc(c*(sqrt(5)+1)/2);
if c=a then writeln(0)
       else writeln(1);//得出结论
end.