zoukankan      html  css  js  c++  java
  • 取石子游戏

    取石子游戏

    链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1218


    时间限制: 1000 ms         内存限制: 65536 KB

    【题目描述】

    有两堆石子,两个人轮流去取。每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍,最后谁能够把一堆石子取空谁就算赢。

       比如初始的时候两堆石子的数目是25和7。

    25 7 --> 11 7 --> 4 7 --> 4 3 --> 1 3 --> 1 0

    选手1取 选手2取 选手1取 选手2取 选手1取

       最后选手1(先取的)获胜,在取的过程中选手2都只有唯一的一种取法。

       给定初始时石子的数目,如果两个人都采取最优策略,请问先手能否获胜。

     

    【输入】

    输入包含多数数据。每组数据一行,包含两个正整数a和b,表示初始时石子的数目。

       输入以两个0表示结束。

     

    【输出】

    如果先手胜,输出"win",否则输出"lose"

    【输入样例】

    34 12
    15 24
    0 0
    

    【输出样例】

    win
    lose

    题解:

       假设石子数目为(a,b)且a >= b,如果[a/b] >= 2则先手必胜,如果[a/b]<2,那么先手只有唯一的一种取法,此时交换两人顺序。[a/b]表示a除以b取整后的值。

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int check(int m,int n)
    {
        if(m<n)return check(n,m);
        if(m/n>=2)return 1;
        else return !check(m-n,n);
        
    }
    int main(){
        int m,n;
        while(cin>>m>>n)
        {
            if(!m&&!n)break;
            if(check(m,n))cout<<"win"<<endl;
            else cout<<"lose"<<endl;
        }
    }
  • 相关阅读:
    webpack4--uglifyjs-webpack-plugin
    webpack4--MiniCssExtractPlugin(extract-text-webpack-plugin)
    webpack--CleanWebpackPlugin is not a constructor
    Core3.0全局捕获异常
    Core3.0返回的数据格式xml或json
    Core3.0读取appsetting.json中的配置参数
    Core3.0发布到IIS的流程
    asp.net MVC Session锁的问题
    记一次Ajax请求MVC调优
    博客园主题皮肤
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/7626995.html
Copyright © 2011-2022 走看看