杭电ACM1527——取石子游戏~~威佐夫博奕

来源:互联网 发布:com域名攻击 编辑:程序博客网 时间:2024/05/29 13:52

这道题目,就是威佐夫博奕问题。

所谓的威佐夫博奕问题就是:有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。

百度百科中  有详细的论述和证明:

http://baike.baidu.com/link?url=YPnShzGoLN4Te1qsPR1FSus9amYbk6HZqMx8__nf_TQ0AE0Lu-A6863I1BuX9ijgDq1OS3aKiWz8R_QyM9go7a

这里就不多说了。

下面的是AC的代码:

#include <iostream>#include <cmath>#include <algorithm>using namespace std;int main(){int a, b;double k = (sqrt(5) - 1.0) / 2.0;while(cin >> a >> b){if(a > b)swap(a, b);int j = a * k;if(a != (int)(j * (k + 1)))j++;if(a + j != b)cout << 1 << endl;elsecout << 0 << endl;}return 0;}


0 0