• JZOJ 1211. 取石子游戏


    题目

    Description

         Jby考完了高考以后,一度闷得发颠…. 无聊之际,发明了一个新的取石子游戏! 规则如下,一共有N颗石子,每次最多可以取走K颗(不能不取),最先取不到的人算输(就是说谁取完谁就赢)。 为了延长这个游戏的时间,Jby弄来了整个宇宙的石子(挺够本事的…)…
     

    Input

    输入数据存放在文本文件game.in中
    题目有T组数据
    第一行为整数T(T<=20)
    以下T行,两个整数K,N

    Output

       输出数据存放在文本文件game.out中
       先行者有必胜策略输出“Yes”,否则输出“No”

     

    Sample Input

    2
    2 3
    3 2

    Sample Output

    No
    Yes

     

    Data Constraint

     数据范围
    20%的数据  K≤10  N≤30,000,000
    50%的数据   K≤100  N≤2^31-1
    100%的数据  K≤1000  N≤10^1000

    分析

    • 显然博弈论的题 四种常见之一

    • 但是输入的n可能很大,用快读边读边%就好了

     

    代码

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 long long n,k;
     4 inline int read(){
     5     int x=0,f=1;
     6     char ch=getchar();
     7     while(ch<'0'||ch>'9'){
     8         if(ch=='-')
     9             f=-1;
    10         ch=getchar();
    11     }
    12     while(ch>='0'&&ch<='9'){
    13         x=((x<<1)+(x<<3)+(ch^48))%(k+1);
    14         ch=getchar();
    15     }
    16     return x*f;
    17 }
    18 int main ()
    19 {
    20     freopen("game.in","r",stdin);
    21     freopen("game.out","w",stdout);
    22     long long T;
    23     cin>>T;
    24     while (T)
    25     {
    26         T--;
    27         cin>>k;
    28         n=read();
    29         if (n%(k+1)==0) cout<<"No"<<endl;
    30         else cout<<"Yes"<<endl;
    31     }
    32  }
    为何要逼自己长大,去闯不该闯的荒唐
  • 相关阅读:
    OnSize() 与 OnInitDialog()[设置控件大小]
    C库函数中字符串处理函数集合
    智能提示导致Visual Studio 2010崩溃问题
    MFC中关闭窗口的几种方法
    8086寄存器组
    MASM6.1使用方法(适合初学者)
    MultiThread
    汇编语言超浓缩教程
    汇编 ADD与DAA指令
    Function Pointer
  • 原文地址:https://www.cnblogs.com/zjzjzj/p/11187418.html
Copyright © 2020-2023  润新知