zoukankan      html  css  js  c++  java
  • 26-又是取石子(博弈)

     /*                                        又是取石子
     题目内容:

     "有甲乙两个人玩取石子游戏,共有n个石子(1<=n<=30000)两个人轮流取,甲先取.每次最多取m个(1<=m<=30000)最少取一个,当轮到谁取的时候没有石子了,谁就赢.
    比如4个石子,每次最多取3个,那末先取的人(甲)一定赢n和m谁大没有限制.)
    (甲拿走3个,乙只拿走1个,下面轮到甲了,但是没有石子了,甲赢了.)
    现在要求你写一个程序,输入n(总的石子个数),最多可以取的石子个数m,输出甲(先取的人)是否会赢,会赢的话输出YES,否则输出LOSE.
    我们这里假设甲乙两个人都采取最好的策略,也就是甲乙都非常想赢而且足够聪明.
    比如输入11 4 输出LOSE"

    输入描述

    整数n m, 空格隔开


    输出描述

    YES或者LOSE


    输入样例

    11 4


    输出样例

    LOSE
    */
    //思路:1为必败局,那么可以知道2 到 m+1为必胜局,m + 2无论怎么取都是在2到m+1之间,所以m + 2 为必败局,依次 类推。

    #include <iostream>
    using namespace std;

    int main(){
        int n, m;
        cin >> n >> m;
        if(n == 1)
            cout << "LOSE";
        else{
            int k;
            for(int i = 1; i <= n; i++){
                if(i * (m + 1) + 1 == n){
                    cout << "LOSE";
                    return 0;    
                }
            }
            cout << "YES";
        }
        return 0;
    }

  • 相关阅读:
    VML 和 SVG 的区别
    ie神器htc
    js函数实现递归自调用的方法
    http状态码
    高级算法——贪心算法(背包问题)
    高级算法——贪心算法(找零问题)
    关于arguments.callee
    检索算法——二分查找
    检索算法——顺序查找(最大值、最小值、自组织数据)
    高级排序算法——快速排序(一种分而治之的算法)
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/7429807.html
Copyright © 2011-2022 走看看