zoukankan      html  css  js  c++  java
  • 2546. 取石块儿[博弈]

    2546. 取石块儿

    ★   输入文件:tstones.in   输出文件:tstones.out   简单对比
    时间限制:1 s   内存限制:256 MB

    问题描述

    小L和小T进行取石块儿游戏,给定一个整数n表示石块儿总数,给定一个整数k表示每次最多能拿走的石块儿数量,小L先手,每次能拿走1~k个石块儿,他们中总会有一个人最后拿走s块儿石块儿,使得剩余石块儿数量为0,则最后一个拿走剩下石块儿的人获胜,另外一个人失败。小T非常聪明,小L绝顶(秃子(逃))聪明,请判断小T是否能取胜。

    输入格式

    第一行一个整数T表示数据组数,接下来T行每行两个整数n,k意义为描述所给。

    输出格式

    对于每组数据,输出"YES"或者"NO"(不带引号),代表小T是否能够获胜。

    输入样例

    2
    2 1
    10 4
    

    输出样例

    YES
    YES
    

    数据范围

    大胆骗分出奇迹!

    对于10%的数据,1kn5

    对于另外10%的数据,k=1,1n10000

    对于另外20%的数据,1kn1000,T10

    对于另外40%的数据,1knunsigned int

    对于全部的测试数据,1knunsigned long long,1T1000000

    /*
    博弈.
    当n<=k时,显然先手必胜.
    否则n=k+1时先手必败.
    n属于[k+2,2k+1]时,总能回到n=k+1的状态,所以先手必胜.
    同理 n=2(k+1),3(k+1)时先手必败......
    所以 k+1|n时先手必败
    否则先手必胜.
    */
    #include<cstdio>
    #include<iostream>
    using namespace std;
    int main(){
        freopen("tstones.in","r",stdin);
        freopen("tstones.out","w",stdout);
        int t;unsigned long long n,k;
        cin>>t;
        while(t--){
            cin>>n>>k;
            puts((!(n%(k+1)))?"YES":"NO");
        }
        return 0;
    }
  • 相关阅读:
    Django-4
    Django-3
    博客中涉及的源码下载
    源码阅读系列:EventBus
    使用DFA做文本编辑器的自动提示
    计算机网络-IP类型判断
    感兴趣的文章搜集
    The Engine Document of JustWeEngine
    [译文]选择使用正确的 Markdown Parser
    Android源码阅读-Filter过滤器
  • 原文地址:https://www.cnblogs.com/shenben/p/6563217.html
Copyright © 2011-2022 走看看