1. 程式人生 > >洛谷 P2252 取石子游戲 威佐夫博弈

洛谷 P2252 取石子游戲 威佐夫博弈

傳送門

也是背一下的結論

有兩堆各若干個物品,兩個人輪流從任意一堆中取出至少一個或者同時從兩堆中取出同樣多的物品,規定每次至少取一個,至多不限,最後取光者勝利。兩堆物品a,b , c=floor((b-a)*((sqrt(5.0)+1)/2)); 若a==c則後手贏,反之先手贏

#include <bits/stdc++.h>
using namespace std;
int main() {
	int n, m;
	cin >> n >> m;
	int a = min(n, m);
	int b = max(n, m);
	int d =
b-a; double r = (sqrt(5)+1)/2; if ((int)(r*d) == a) cout << "0" << endl; else cout << "1" << endl; return 0; }