您的位置:首页 > 其它

nyoj题目833:取石子(七)

2015-04-21 17:04 211 查看

取石子(七)

时间限制:1000 ms  |  内存限制:65535 KB

难度:1

描述
Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和Hrdv分别从其中取石子,谁先取完者胜,每次可以从中取一个或者相邻两个,Hrdv先取,输出胜利着的名字。

输入输入包括多组测试数据。

每组测试数据一个n,数据保证int范围内。输出输出胜利者的名字。样例输入
2
3

样例输出
Hrdv
Yougth

 

#include <stdio.h>

int main ()

{

 int n;

 while (scanf("%d", &n)!=EOF)

 {

  if (n <= 2)

   printf("Hrdv\n");

  else

   printf("Yougth\n");

 }

 return 0;

}

//自己做不出来,看得网上的解析。

/* 
这个题可以看成是对称的博弈 

可以这样想,将这堆石子分成两堆完全相等的石子堆,无论自己做出什么状态的策略,对方只要在另一堆 
采取相同的策略就可以回到初始状态(双方相等的状态),最后自己这一堆先没了石子,对手则取走对手堆 

的最后一块,所以这是必败态,而面对N>2 石子 对手都可以使之变成两堆相等的石子,做出对称状态在完全 
模拟对手常常是有效的 

 */  

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: