BZOJ 2940: [Poi2000]条纹(Multi-Nim)

Description

    条纹游戏是一个双人的游戏。所需要的物品有一个棋盘以及三种颜色的长方形条纹,这三种颜色分别是红色、绿色和蓝色。所有的红色条纹的尺寸是c*1,所有的绿色条纹的尺寸是z*1,所有的蓝色条纹的尺寸是n*1,这里c,z,n是正整数。每种颜色的条纹每个游戏者都拥有无限多个。

       一个棋盘是一个尺寸为p*1的长方形,由p个1*1的方格组成。

       游戏者轮流走,每一步都是由一个游戏者任选一种长方形条纹覆盖到棋盘上,并要求遵循以下规则:

l        条纹不能伸出棋盘之外。

l        不能覆盖在已有的条纹之上(即使部分也不行)。

l        条纹的边缘必须与棋盘方格的边缘相重叠。谁不能再走,谁就输了。

先手是指在游戏中第一个走的游戏者。那么是否不管后手怎么走,先手都有必胜策略呢?

任务:

写一个程序:

l        读入条纹的尺寸以及至少一个棋盘的尺寸。

l        对每一个给出的棋盘判断先手是否必胜。

l        将结果输出。

Input

 第一行包含三个整数c,z,n(1<=c,z,,n<=1000),表示三种条纹的长度,依次为红色,绿色以及蓝色。每两个数之间都用空格隔开。

       文件的第二行包括一个整数m(1 <= m <= 1000)表示需要考虑的不同棋盘个数。以下3到m+2行每行包括一个整数p(1<=p<=1000)。第i+2行表示第i个棋盘的长度。

Output

   应当包含m行。只有一个数字应当被写入文件的第i行:

l        1—如果对第i个棋盘先手有必胜策略。

l        2—其它。

Sample Input

1 5 1 3 1 5 6

Sample Output

1 1 2

HINT

Source

随便yy了一个做法交上去居然A了QWQ....

这题的模型应该是类似于Multi-Nim。

对于拆出来的游戏的SG异或起来就是当前游戏的SG

然后枚举3个线段放在哪儿。

#include<cstdio>
#include<cstring>
const int MAXN=1001;
inline int read()
{
    char c=getchar();int x=0,f=1;
    while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    return x*f;
}
int f[4],N=1001,SG[MAXN],S[MAXN];
int main()
{
    #ifdef WIN32
    freopen("a.in","r",stdin);
    #else
    #endif
    for(int i=1;i<=3;i++) f[i]=read();
    for(int i=1;i<=N;i++)
    {
        memset(S,0,sizeof(S));
        for(int j=1;j<=3&&f[j]<=i;j++)
            for(int k=0;k<=i-f[j];k++)
                S[ SG[k]^SG[i-k-f[j]] ] =1;
        for(int j=0;;j++) if(!S[j]) {SG[i]=j;break;}
    }
    int QwQ=read();
    while(QwQ--)
    {
        int p=read();
        puts(SG[p]?"1":"2");
    }
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏海天一树

LDA处理文档主题分布

这篇文章主要是讲述如何通过LDA处理文本内容TXT,并计算其文档主题分布。 在了解本篇内容之前,推荐先阅读相关的基础知识: LDA文档主题生成模型入门 结巴中文...

17930
来自专栏腾讯Bugly的专栏

比章鱼保罗还准 预测 AI 之欧洲杯预测

提起章鱼保罗,无人不知。在2008欧洲杯和2010世界杯两届大赛中,章鱼保罗预测赛果14次,成功13次,成功率92.9%。 但不幸的是,2010年,万众敬仰的章...

559120
来自专栏LET

glTF(二):PBR

43860
来自专栏机器之心

资源 | Richard Sutton经典教材《强化学习》第二版公布(附PDF下载)

29680
来自专栏大数据文摘

快讯 | Facebook开源语音识别工具包wav2letter

32560
来自专栏新智元

【Github2.2K星】PyTorch资源列表:450个NLP/CV/SP、论文实现、教程、示例

https://github.com/bharathgs/Awesome-pytorch-list

21110
来自专栏CVer

资源 | GitHub超过2600星的PyTorch清单,涵盖CV/NLP等方向

https://github.com/bharathgs/Awesome-pytorch-list

22430
来自专栏AI科技评论

EMNLP 2018 上 FB 、谷歌继续并肩「刷榜」,瓜分最佳长论文和十分之一接收论文

AI 科技评论按,自然语言处理顶会 EMNLP 2018 已经于 10 月 31 日开始了 Tutorial,正会将从 11 月 2 日开始。2017 年中,词...

13820
来自专栏量子位

如何用卷积神经网络从歌曲中提取纯人声?这里有教程+代码

安妮 编译整理自 Madebyollin博客 量子位 报道 | 公众号 QbitAI 你应该对阿卡贝拉(Acapella)不陌生吧。这种无伴奏合唱的纯音乐起源于...

53970
来自专栏量子位

德国AI“算个球”:西班牙是冠军,只要别让德国进八强(严谨推理)

可能是由于人类(包括球王)预测不靠谱,前几届世界杯预测战况和冠军的任务,常常交给动物完成。

11120

扫码关注云+社区

领取腾讯云代金券