取石子(七)
时间限制:
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; }
-
输入包括多组测试数据。