在一个2*N的格子上,Alice和Bob又开始了新游戏之旅。

这些格子中的一些已经被涂过色,Alice和Bob轮流在这些格子里进行涂色操作,使用两种涂色工具,第一种可以涂色任意一个格子,第二种可以涂色任意一个2*2的格子。每一轮游戏里,他们可以选择一种工具来涂色尚未被染色的格子。需要注意,涂色2*2的格子时,4个格子都应当未被涂色。最后一步涂满所有格子的玩家获胜。

一如既往,Alice先手,最优策略,谁是赢家?

Input输入第一行为T,表示有T组测试数据。

每组数据包含两个数字,N与M,M表示有多少个已被染色的格子。接下来的M行每行有两个数字Xi与Yi,表示已经被涂色的格子坐标。

[Technical Specification]

1. 1 <= T <= 74

2. 1 <= N <= 4747

3. 0 <= M <= 2 * N

4. 1 <= Xi <= 2, 1 <= Yi <= N,格子坐标不会重复出现

Output对每组数据,先输出为第几组数据,然后输出“Alice”或者“Bob”,表示这轮游戏的赢家。 Sample Input

2

2 0

2 2

1 1

2 2

Sample Output

Case 1: Alice

Case 2: Bob

思路:

可以先考虑有连续n列的空格的sg值是多少。

n=0时显然sg[0]=0,之后就是普通的sg函数打表,只不过是要将格子分区而已。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define INF 0x3f3f3f3f

#pragma comment(linker, "/STACK:102400000,102400000")

using namespace std;

const int maxn=5000;

int sg[maxn];

bool pl[2][maxn];

int get_sg(int x)

{

if(sg[x]!=-1)

return sg[x];

bool vis[maxn];

memset(vis, false , sizeof(vis));

for(int i=0; i<=x-1-i; i++)

{

int t=get_sg(i)^1^get_sg(x-1-i); //只涂这一列的其中一个格子

vis[t]=true;

}

for(int i=0; i<=x-2-i; i++)

{

int t=get_sg(i)^get_sg(x-i-2); //这一列的格子都涂

vis[t]=true;

}

for(int i=0; ; i++)

{

if(!vis[i])

{

sg[x]=i;

break;

}

}

return sg[x];

}

int main()

{

memset(sg, -1, sizeof(sg));

sg[0]=0;

for(int i=1; i

sg[i]=get_sg(i);

int t;

scanf("%d", &t);

for(int cas=1; cas<=t; cas++)

{

int n, m;

scanf("%d%d", &n, &m);

memset(pl, false, sizeof(pl));

int ans=0;

for(int i=1; i<=m; i++)

{

int x, y;

scanf("%d%d", &x, &y);

pl[--x][--y]=true;

}

int cnt=0;

for(int i=0; i

{

if(pl[0][i]&&pl[1][i]) //如果某一列的格子都涂了,那么异或这一列格子之前的连续空格子的sg值

{

ans^=sg[cnt];

cnt=0;

continue;

}

if(pl[0][i]^pl[1][i]) //如果这一列之涂了一个格子,那么异或这一列格子之前的连续空格子的sg值再异或1

{

ans=ans^sg[cnt]^1;

cnt=0;

continue;

}

cnt++; //如果这一列没有格子被涂,那么连续空格子的长度+1

}

ans^=sg[cnt];

if(ans)

printf("Case %d: Alice\n", cas);

else

printf("Case %d: Bob\n", cas);

}

return 0;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

Java方格染色_C++实现涂色游戏(博弈)相关推荐

  1. 【NOIP 模拟赛】平均数 涂色游戏 序列题解

    吐槽(完跪):神tmNOIP模拟赛,看到大题头根本高级数据结构什么的想都没想,结果死的很惨,第三题竟然要可持久化线段树,这NOIP我服了. 平均数: 这道题40分相信大家都能拿到,剩下的60分讲真考验 ...

  2. qduoj LC的涂色游戏(快速幂)

    题目链接:https://qduoj.com/problem/12/点击打开链接 LC的涂色游戏 发布时间: 2015年9月19日 21:42   时间限制: 1000ms   内存限制: 256M ...

  3. c语言写一个格子涂色的游戏,不一样的涂色游戏小程序,这个魔力贴贴涂色游戏有点意思...

    原标题:不一样的涂色游戏小程序,这个魔力贴贴涂色游戏有点意思 30000+游戏爱好者已加入我们! 沐沐带你发现好游戏! <魔力贴贴>游戏小程序好玩吗? <魔力贴贴>小游戏怎么玩 ...

  4. NOI Online #2 提高组 第一题:涂色游戏

    NOI Online #2 提高组 第一题:涂色游戏 前言 题目 解析 代码 前言 呦呵,这道题我竟然爆零了 而且我的暴力dfs死循环了!\bold{\Large\xcancel\text{而且我的暴 ...

  5. 【noip2016十连测round3】T3 涂色游戏 【矩阵快速幂优化dp】

    涂色游戏 题解: 推一推公式. 我们让f[i][j]表示第i列有j种颜色的方案总数,k表示i-1列用了多少种颜色,l表示第i列用了多少种没有在i-1列出现的颜色,G(i,j)表示i个格子涂j种颜色的方 ...

  6. qduoj LC的涂色游戏

    LC的涂色游戏 发布时间: 2015年9月19日 21:42   时间限制: 1000ms   内存限制: 256M 描述 LC是实验室传说级的大神,最近喜欢上了涂色游戏,现在纸上有n块空白区域,lc ...

  7. 涂色游戏color(【CCF】NOI Online 能力测试2 提高组第一题 )

    子序列问题sequence([CCF]NOI Online能力测试2 提高组第二题 ) 游戏match([CCF]NOI Online能力测试2 提高组第三题 ) 题目背景 1s 256M 题目描述 ...

  8. hdu 4559 涂色游戏(SG)

    在一个2*N的格子上,Alice和Bob又开始了新游戏之旅. 这些格子中的一些已经被涂过色,Alice和Bob轮流在这些格子里进行涂色操作,使用两种涂色工具,第一种可以涂色任意一个格子,第二种可以涂色 ...

  9. 橡皮擦的英语_从填字涂鸦到英语启蒙,家长口中的儿童版“秘密花园”涂色游戏测评【玩具测评】...

    #前情提要#丰富的拓展玩法让简单的穿珠游戏大不同,点击<手眼协调与数学启蒙,用线绳穿珠游戏促进能力发展>了解详情. 今天我们为大家带来了一篇绘画+英语启蒙学习玩具的测评报告.这款玩具是植绒 ...

最新文章

  1. 使用Keras/TensorFlow模型构建属于你的Chatbot API
  2. Example of BeanFactoryAware in Spring--转
  3. Struts2返回JSON对象的方法总结
  4. 电脑cmd命令大全_电脑定时关机的方法(2)
  5. GitHub使用指南——如何删除存储库
  6. 奇偶链表的分割(C++)
  7. django 1.8 官方文档翻译: 3-6-2 内建的中间件
  8. 十荟团创始人发表内部信,公布下半场业务的全面升级规划
  9. 一次面试留下的实际应用问题。关于HttpModule,IIS集成模式。
  10. Linux中的sh+source+export
  11. Tomcat--安装与部署(一)
  12. centOS7查看防火墙状态
  13. 服务器采集协议,H3C设备服务器采集参数认证过程(包含redfish和restfull协议)
  14. 语音识别/合成开源项目
  15. Fiverr 攻略:跨境自由职业通过 Fiverr 盈利
  16. 如何优化在搜索引擎上的友好度
  17. python使用requests时报错requests.exceptions.SSLError: HTTPSConnectionPool
  18. 从懵懂娃娃到社会行业大佬,这中间经历的过程的概括性思考
  19. 创维,彩电业的“技术咖”,能否赢得下一个十年?
  20. ccf python写题随手记

热门文章

  1. 2021年全球与中国鼓衬行业市场规模及发展前景分析
  2. Bugku 杂项 爆照(08067CTF)
  3. 《Introduction to Linux》——Linux Fundation (15~18/18章)
  4. 免拆诊断 | 2018 款奥迪 A6L 车偶尔加速不良
  5. Banner 广告设计技巧及经验(转自UI中国)
  6. Linux创建虚拟块设备并格式化为文件系统
  7. 人工智能可以用来预测股票市场吗?
  8. 文本文件单词统计(C语言)
  9. iOS app 企业内部发布及Tomcat启用HTTPS协议配置
  10. Jetson TX2入门之ZED双目摄像头