取石子(七)
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和Hrdv分别从其中取石子,谁先取完者胜,每次可以从中取一个或者相邻两个,Hrdv先取,输出胜利着的名字。
-
输入
- 输入包括多组测试数据。 每组测试数据一个n,数据保证int范围内。 输出
- 输出胜利者的名字。 样例输入
-
2 3
样例输出
-
Hrdv Yougth
描述
这个游戏是个坑,这个题也是个坑......
博弈论,这个题算是比较简单的那种情况,只要满足一定条件,先取的那个人完全可以赢,当然不犯错的情况下....
这个可以推导一下.....
假设有n(n>3)个,那么只要前一个掌握住,自己每一次取后,剩下的数是三的倍数,就可以取胜,这样要求是为了让对方不可能取到最后一个,也就是,如果开始有3的倍数少一个的话就取走两个,否则就取走一个,然后,后边的就是保证剩下的是三的倍数.....
自己实验一下,就发现奇妙的地方了...
#include <stdio.h> int main() { int n; while(scanf("%d",&n)!=EOF) { if(n<3) { printf("Hrdv\n"); } else { printf("Yougth\n"); } } return 0; }