• 梦工厂实验室 取石子之fans 博弈


    问题 D: 取石子之fans

    时间限制: 1 Sec  内存限制: 64 MB
    提交: 57  解决: 26
    [提交][状态][讨论版]

    题目描述

    Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和Hrdv分别从其中取石子,谁先取完者胜,每次可以从中取一个或者相邻两个(注意不是“两个”而是“相邻两个”),Yougth先取,两个人足够聪明,不会拿错。输出胜利者的名字。

    输入

    输入包括多组测试数据。
    每组测试数据一个正整数n,数据保证int范围内。

    输出

    输出胜利者的名字。

    样例输入

    2
    3

    样例输出

    Yougth
    Hrdv
      
    这个题可以看成是对称的博弈。可以这样想,将这堆石子分成两堆完全相等的石子堆,无论自己做出什么状态的策略,对方只要在另一堆采取相同的策略就可以回到初始状态(双方相等的状态),最后自己这一堆先没了石子,对手则取走对手堆的最后一块,所以这是必败态,而面对N>2 石子 对手都可以使之变成两堆相等的石子,做出对称状态在完全模拟对手常常是有效的


    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    #include<stack>
    #include<queue>
    #include<vector>
    #include<algorithm>
    using namespace std;
     
    int main()
    {
        int n,i,j;
        while(~scanf("%d",&n)){
            if(n<=2) printf("Yougth
    ");
            else printf("Hrdv
    ");
        }
        return 0;
    } 
    /**************************************************************
        Problem: 1548
        User: 2016207228
        Language: C++
        Result: 正确
        Time:0 ms
        Memory:1084 kb
    ****************************************************************/
  • 相关阅读:
    C#委托及事件 详解(讲得比较透彻)
    浅谈前端常用脚手架cli工具及案例
    C++实现二分法详解
    重新整理 .net core 实践篇————重定向攻击[三十九]
    动态规划_备忘录法_矩阵链乘问题
    完了,又火一个项目
    DOM常用的属性和方法
    一些胡乱的吐槽
    Mac安装compass失败的原因
    css动画animation-keyframes
  • 原文地址:https://www.cnblogs.com/yzm10/p/7257955.html
Copyright © 2020-2023  润新知