山东省赛-博弈-Game

来源:互联网 发布:qq一键加群里好友软件 编辑:程序博客网 时间:2024/06/10 04:04

 点击打开题目链接

 很明显的一道博弈题目,但是在求SG的时候,子状态写错了,一直都没有AC。最后还是水过去的额;比赛后还是自己写了一遍;

# include <cstdio># include <cstring># include <iostream>using namespace std;int sg[1200];int get(int x){    if(x < 0)   return 0;    if(sg[x] != -1) return sg[x];    int mex[1200] = {0};    for(int i = 0;i < x;i++){        int t = get(i)^get(x-i - 1)^get(i-1)^get(x - i -2);        mex[t] = 1;    }    for(int i = 0;;i++) if(!mex[i]) return sg[x] = i;}int main(){    //freopen("a.txt","r",stdin);    //freopen("b.txt","r",stdin);    int t;    memset(sg,-1,sizeof(sg));    scanf("%d",&t);    while(t--){        int n;        scanf("%d",&n);        if(n <= 2){            printf("zbybr\n");            continue;        }        if(get(n - 1) || get(n - 2))    printf("blankcqk\n");        else    printf("zbybr\n");    }    return 0;}


0 0
原创粉丝点击