• bzoj3609 [Heoi2014]人人尽说江南好


    Description

      小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家),最近他 想起了小时候在江南玩过的一个游戏。 

       在过去,人们是要边玩游戏边填词的,比如这首《菩萨蛮》就是当年韦庄在玩游戏时填 的:
        人 人 尽 说 江 南 好, 游 人 只 合 江 南 老。 
       然而我们今天不太关心人们填的词是什么,我们只关心小 Z 那时玩过的游戏。游戏的规 则是这样的,给定 N 堆石子,每堆石子一开始只有 1 个。小 Z 和他的小伙伴轮流操作, 小 Z 先行操作。操作可以将任意两堆石子合并成为一堆,当谁不再能操作的时候,谁就输掉了。 不过,当一堆石子堆的太高时可能发生危险,因此小 Z 和他的小伙伴规定,任何时刻任意一 堆石子的数量不能超过 m。即假如现在有两堆石子分别有 a 个和 b 个,而且 a+b>m,那么这 两堆石子就不能合成一堆。 
           小 Z 和他的小伙伴都是很聪明的,所以他们总是会选择对自己最有利的策略。现在小 Z 想要知道,在这种情况下,对于一个给定的 n 和 m,到底是谁能够获得胜利呢? 

    Input

     本题包括多组数据  数据第一行为一个数 T,为数据组数 
     以下 T 行,每行两个正整数 n,m 

    Output

     输出 T 行,每行为 0 或 1,如果为 0 意为小 Z(即先手)会取得胜利,为 1 则为后手会 取得胜利。 

    Sample Input

    5
    7 3
    1 5
    4 3
    6 1
    2 2

    Sample Output

    1
    1
    1
    1
    0

    HINT 

      100%的数据, n,m<=1000000000, T<=100 

    正解:博弈论。

    有一个结论,就是最后的序列一定是形如$m,m,m,...,n mod m$形式的,具体证明可以看这里

    因为我们知道开始和结束时的堆数,那么就能算出总共要合并多少次,也就知道先手是否胜利了。

     1 #include <bits/stdc++.h>
     2 #define il inline
     3 #define RG register
     4 #define ll long long
     5 
     6 using namespace std;
     7 
     8 int n,m,tim;
     9 
    10 il int gi(){
    11   RG int x=0,q=1; RG char ch=getchar();
    12   while ((ch<'0' || ch>'9') && ch!='-') ch=getchar();
    13   if (ch=='-') q=-1,ch=getchar();
    14   while (ch>='0' && ch<='9') x=x*10+ch-48,ch=getchar();
    15   return q*x;
    16 }
    17 
    18 il void work(){
    19   n=gi(),m=gi(),tim=(n-1)/m+1;
    20   puts((n-tim)&1 ? "0" : "1"); return;
    21 }
    22 
    23 int main(){
    24 #ifndef ONLINE_JUDGE
    25   freopen("game.in","r",stdin);
    26   freopen("game.out","w",stdout);
    27 #endif
    28   RG int T=gi();
    29   while (T--) work();
    30   return 0;
    31 }
  • 相关阅读:
    Silverlight4 打印 生成文件过大解决
    清理 Visual Studio 工具箱 的冗杂控件(第三方控件卸载不完全)
    SQL2005SP4生成数据库脚本视图依赖顺序错误问题
    SQL Server 2005 企业版没有 Management Studio管理工具
    Excel Reader 轻量级
    开发托管ActiveX或第三方程序托管插件时调试问题解决方法
    Entity Framework 从数据库生成模型丢失数据库文档不完美解决方案
    今天写了个很蛋疼的sql语句
    WinForm 内嵌 Office 文档 解决方案测试(非DSOFRAME 纯C#代码,网上独一份)
    生产者、消费者问题之闹钟
  • 原文地址:https://www.cnblogs.com/wfj2048/p/8012821.html
Copyright © 2020-2023  润新知