本文主要是介绍迷之博弈 SDUT 3038,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
FF喜欢博弈,今天又开始了一场博弈。
将n个棋子摆成一条直线,编号为1到n。两个人轮流取棋子,每回合取一次且只能按照下述两种方法的一种取。
1,任取一个棋子。
2,任取两个棋子且这两个棋子的编号是连续的。
FF为了彰显高手风范总是让对方先手。现在假设两个人都足够聪明,对于给出的n,FF是否能赢。取得最后一个棋子的选手获得胜利。
输入
输出
示例输入
1 2
示例输出
Why are you so ben? Why are you so ben?
据说这个题看似高大上,其实是很简单,确实是博弈论,而且是先手比胜,解释一下,如果是奇数,就先拿中间的一个,如果是偶数,就先拿中间的两个,然后就跟着他拿的对称的方向去拿,因为他说了n是最后一个拿,所以最后FF肯定是失败的。
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int n;
while(~scanf("%d",&n))
printf("Why are you so ben?\n");
return 0;
}
这篇关于迷之博弈 SDUT 3038的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!