BZOJ2940 条纹

news/2024/11/22 8:33:44/
条纹游戏是一个双人的游戏。所需要的物品有一个棋盘以及三种颜色的长方形条纹,这三种颜色分别是红色、绿色和蓝色。所有的红色条纹的尺寸是c*1,所有的绿色条纹的尺寸是z*1,所有的蓝色条纹的尺寸是n*1,这里c,z,n是正整数。每种颜色的条纹每个游戏者都拥有无限多个。
一个棋盘是一个尺寸为p*1的长方形,由p个1*1的方格组成。
游戏者轮流走,每一步都是由一个游戏者任选一种长方形条纹覆盖到棋盘上,并要求遵循以下规则:
条纹不能伸出棋盘之外。
不能覆盖在已有的条纹之上(即使部分也不行)。
条纹的边缘必须与棋盘方格的边缘相重叠。谁不能再走,谁就输了。
先手是指在游戏中第一个走的游戏者。那么是否不管后手怎么走,先手都有必胜策略呢?

解:暴力sg即可,发现复杂度是n²的。

 1 #include <bits/stdc++.h>
 2 
 3 const int N = 1010;
 4 
 5 int bin[N], sg[N];
 6 
 7 int main() {
 8     int a, b, c, n;
 9     scanf("%d%d%d", &a, &b, &c);
10     for(int i = std::min(std::min(a, b), c); i <= 1000; i++) {
11         memset(bin, 0, sizeof(bin));
12         for(int j = 0; j + a <= i; j++) {
13             bin[sg[j] ^ sg[i - j - a]]++;
14         }
15         for(int j = 0; j + b <= i; j++) {
16             bin[sg[j] ^ sg[i - j - b]]++;
17         }
18         for(int j = 0; j + c <= i; j++) {
19             bin[sg[j] ^ sg[i - j - c]]++;
20         }
21         for(int j = 0; ; j++) {
22             if(!bin[j]) {
23                 sg[i] = j;
24                 break;
25             }
26         }
27     }
28 
29     scanf("%d", &n);
30     for(int i = 1; i <= n; i++) {
31         scanf("%d", &a);
32         printf("%d\n", sg[a] ? 1 : 2);
33     }
34 
35     return 0;
36 }
AC代码

 

转载于:https://www.cnblogs.com/huyufeifei/p/10552259.html


http://www.ppmy.cn/news/304064.html

相关文章

Linux Crash/Hang on Bay Trail/J1900/N2940

近几年的linux kernel, 尤其是4.1以后,在Bay Trail平台上会随机挂起和死机,亲测j1900,死机非常频繁,而且死机前毫无征兆,直接就挂起了,console也没有相应。 这个问题在bugzilla.kernel.org上已经吵翻了,从2015年年初,一直到现在,仍然没有彻底解决,临时方案有几个,但…

docker下载慢,卡顿解决办法——免费安装人人都有的docker加速器

点我获取阿里云免费镜像加速器 先确认一下docker版本>1.10.0 docker -v 人人都有免费哦~ 进入对应目录查看&#xff0c;我是root用户且没有 daemon.json文件 那就创建一个 vim daemon.json内容就是网页复制的那个 最后重启 systemctl daemon-reloadsystemctl restart do…

国内vscode高速下载

将vscode官方下载地址中的az764295.vo.msecnd.net替换为vscode.cdn.azure.cn 下边这个是改好的可以直接使用&#xff0c;下载速度起飞 https://vscode.cdn.azure.cn/stable/dfd34e8260c270da74b5c2d86d61aee4b6d56977/VSCodeUserSetup-x64-1.66.2.exe

百度云盘高速下载

1.安装chrome浏览器 2.安装Free Download Manager 3.google应用商店搜索Free Download Manager&#xff0c;安装 4.google应用商店搜索Tampermonkey&#xff0c;安装 5.添加新脚本&#xff0c;搜索脚本 百度网盘直接下载助手 直链加速版 安装 6.登录网盘&#xff0c;选择要…

ubuntu高速下载onedrive文件

firefox&#xff08;chrome也可以&#xff0c;firefox&#xff09;打开onedirve网页版&#xff0c;按f12找到网络选项&#xff0c; 然后在onedirve网页版下载对应的文件&#xff0c; 在网络选项窗口里面找到download那个链接&#xff0c; 右键复制->复制为curl 命令链接&a…

chrome github加速器

下载加速插件 如果可以访问谷歌 github加速器下载 如果不能访问谷歌 csdn 资源文件下载 https://download.csdn.net/download/qq_26462567/16545761 使用方法 第一步: 打开chrome浏览器 第二步 &#xff1a;在地址栏输入 chrome://extensions 打开拓展程序 第三步&…

百度高速下载器

介绍 PanDownload&#xff0c;百度网盘高速下载器。采用了Aria 2技术&#xff0c;支持离线下载、新番下载、提取下载链接、自定义Aria2配置、自定义分享密码&#xff0c;原理类似油猴脚本IDM&#xff0c;获取直链后调用Aria2进行下载加速&#xff0c;登陆网盘账号获取自己的网…

bootstrap实战_免费高速下载|百度云 网盘-分享无限制

bootstrap实战_免费高速下载|百度云 网盘-分享无限制. Categories: 日志