nyoj题目833:取石子(七)

取石子(七)

时间限制: 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 石子 对手都可以使之变成两堆相等的石子,做出对称状态在完全 

模拟对手常常是有效的 

 */  

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值