本文主要是介绍NYoj - 833 取石子(七),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
取石子(七)
时间限制: 1000 ms | 内存限制: 65535 KB
难度: 1
- 描述
-
Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和Hrdv分别从其中取石子,谁先取完者胜,每次可以从中取一个或者相邻两个,Hrdv先取,输出胜利着的名字。
- 输入
- 输入包括多组测试数据。
每组测试数据一个n,数据保证int范围内。 输出 - 输出胜利者的名字。 样例输入
-
2 3
样例输出 -
Hrdv Yougth
来源 - Poj 上传者
- TC_杨闯亮
这是一道水题...n==1 || n==2时明显是Hrdv赢那么推测:n==3时Hrdv取一个或两个都是Yougth赢n==4时若Hrdv取一个,Yougth取剩余3个中的中间一个,则Hrdv下次只能取一个,最后是Yougth赢;若Hrdv取两个,则明显是Yougth赢n==5时若Hrdv取一个,Yougth取剩余4个中的边界一个可保证自己赢若Hrdv取两个,Yougth取剩余3个中的中间一个,可保证自己赢我就是这样推的...所以n>2时都是Yougth赢但是没有理论依据百度以后发现:有一个巴什博弈,具体就不说了最近没打算刷博弈系列的题...这道题的代码如下:#include <iostream> #include <algorithm> using namespace std; int main(void) {int n;while(cin >> n) {if(n > 2)cout << "Yougth" << endl;else cout << "Hrdv" << endl;}return 0; }
- 输入包括多组测试数据。
这篇关于NYoj - 833 取石子(七)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!