(HDU - 2516)取石子游戏(斐波那契博弈)

题目链接:取石子游戏 - HDU 2516 - Virtual Judge (ppsucxtt.cn)

题目是中文的,我在这就不翻译了。

这道题目是斐波那契博弈的模板,当且仅当给定的石子数是斐波那契数时后手赢,其余情况均是先手赢。还不明白斐波那契博弈的小伙伴可以看下我之前写的博客,在这附上博客地址:

(34条消息) 博弈论总结_AC__dream的博客-CSDN博客

思路比较简单,直接上代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;
int main()
{
	int n;
	while(1)
	{
		scanf("%d",&n);
		if(n==0) break;
		bool flag=false;
		int a=1,b=1,c;
		while(a+b<=n)
		{
			if(a+b==n)
			{
				flag=true;
				break;
			}
			c=a+b;
			a=b;b=c;
		}
		if(flag) puts("Second win");
		else puts("First win");
	}
	return 0;
}

上一篇:hdu 3068 最长回文(马拉车)


下一篇:HDU 6156 题解