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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HZEUHJEJNJ/article/details/84712136

传送门

也是背一下的结论

有两堆各若干个物品,两个人轮流从任意一堆中取出至少一个或者同时从两堆中取出同样多的物品,规定每次至少取一个,至多不限,最后取光者胜利。两堆物品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;
}

猜你喜欢

转载自blog.csdn.net/HZEUHJEJNJ/article/details/84712136
今日推荐