• Vijos P1196吃糖果游戏[组合游戏]


    描述

    Matrix67和Shadow正在做一个小游戏。

    桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,并且把另一堆糖果分成两堆(可以不相等)留给对方操作。游戏如此进行下去,糖果数会越来越少,最后必将出现这样一种情况:某人吃掉一堆糖果后发现另一堆里只剩一块糖果不能再分了。游戏规定此时该操作者吃掉最后这一块糖果从而取胜。

    这个游戏是不公平的。对于任意一种初始状态,总有一方有必胜策略。所谓有必胜策略是指,无论对方如何操作,自己总有办法取胜。

    Matrix67和Shadow将进行10次游戏,每一次游戏中总是Matrix67先进行操作。Matrix67想知道每一次游戏中谁有必胜策略。

    格式

    输入格式

    输入数据一共10行,每行有两个用空格隔开的正整数,表示一次游戏开始时桌子上两堆糖果分别有多少个。

    对于50%的数据,这些正整数均不超过100;
    对于70%的数据,这些正整数均不超过10 000;
    对于100%的数据,这些正整数均不超过10 000位。

    输出格式

    输出十行字符串。这些字符串只能是“Matrix67”或“Shadow”,它们表示对应的十行输入数据中有必胜策略的一方。

    请注意大小写。

    样例1

    样例输入1[复制]

     
    1 1
    1 2
    1 3
    1 4
    1 5
    2 1
    2 2
    2 3
    2 4
    2 5

    样例输出1[复制]

     
    Matrix67
    Matrix67
    Matrix67
    Matrix67
    Matrix67
    Matrix67
    Shadow
    Shadow
    Matrix67
    Matrix67

    限制

    各个测试点1s

    来源

    Matrix67原创


    规定了获胜状态

    从(x,1)开始递推

    设(x,a),吃掉x,留下的a分开,如果能分成两部分c和d使(x,c)和(x,d)都是P状态,(x,a)就是n状态;如果不得不存在一个N状态的,(x,a)就是P状态

    递推完1...10后>10的%10就行了

    还有一种分析:(%Matrix67)

    当游戏状态属于前者时,Matrix67可以把糖果数被5除余1、4或正好除尽的那一堆分成糖果数被5除余数都是2或3的两堆(他总能做到这一点),而对方不得不把其中一堆糖果又分出新的糖果数被5除余1、4或正好除尽的一堆留给Matrix67操作。这样逼着对方总是面临必败的状态,使得最后对方不得不把2个糖果或者3个糖果分成两堆,从而使Matrix67赢得游戏。反过来,当Matrix67面临两堆糖果的数目被5除余数都是2或3的状态时,Shadow总可以取胜。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    using namespace std;
    const int N=1e4+5,INF=1e9+5;
    char a[N],b[N];
    int main(){
        for(int i=1;i<=10;i++){
            scanf("%s%s",a,b);
            int n=strlen(a)-1,m=strlen(b)-1;
            char c=a[n],d=b[m];
            if((c=='2'||c=='3'||c=='7'||c=='8')&&(d=='2'||d=='3'||d=='7'||d=='8')) puts("Shadow");
            else puts("Matrix67");
        }
    }
  • 相关阅读:
    MYSQL基础02DML操作数据8
    MYSQL基础02SQL5
    SpringSecurity权限管理系统实战—四、整合SpringSecurity(上)
    SpringSecurity权限管理系统实战—三、主要页面及接口实现
    SpringSecurity权限管理系统实战—九、数据权限的配置
    SpringSecurity权限管理系统实战—八、AOP 记录用户、异常日志
    SpringSecurity权限管理系统实战—六、SpringSecurity整合JWT
    SpringSecurity权限管理系统实战—二、日志、接口文档等实现
    SpringSecurity权限管理系统实战—五、整合SpringSecurity(下)
    SpringSecurity权限管理系统实战—七、处理一些问题
  • 原文地址:https://www.cnblogs.com/candy99/p/6059510.html
Copyright © 2020-2023  润新知