威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
/*黄金分割比例判断是不是非奇异局势,面对奇异局势必败两个人如果都采用正确操作,那么面对非奇异局势,先拿者必胜反之,则后拿者取胜。*///公式 ak =[k(1+√5)/2],bk= ak + k
/*Accepted 184K 0MS C++ 334B 2012-08-23 16:55:14*/#include#include const double key = (sqrt(5.0) + 1.0) / 2;int main(){ int a, b, k; while(scanf("%d%d", &a, &b) == 2) { if(a > b) { a ^= b, b ^= a, a ^= b; } k = b - a; puts((floor(k * key) == a) ? "0" : "1"); } return 0;}