nyoj833取石子(七)

来源:互联网 发布:苹果mac删除软件 编辑:程序博客网 时间:2024/06/04 18:02

这道题其实我是不会的,但是我手上有万能的百度啊,上网搜了一下,结果就出来了,多看了几篇题解之后,我就懂了,是这样的,他是一种对称博弈,只要第一个人取走一部份,然后下一个人就将这堆石子分成两个对称的部分,前一个人在那堆石子里取几个石子,另外一个就做相同的动作,然后后者一定会赢,大概如此,代码如下。

描述    Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和Hrdv分别从其中取石子,谁先取完者胜,每次可以从中取一个或者相邻两个,Hrdv先取,输出胜利着的名字。输入    输入包括多组测试数据。    每组测试数据一个n,数据保证int范围内。输出    输出胜利者的名字。样例输入    2    3样例输出    Hrdv    Yougth
#include<iostream>using namespace std;int main(){    int n;    while(cin>>n){        if(n>2)cout<<"Yougth"<<endl;        else cout<<"Hrdv"<<endl;    }    return 0;}