题目大意:一个n(n<=1000)行,20列的棋盘上有一些棋子,两个人下棋,每回合可以把任意一个棋子向右移动到这一行的离这个棋子最近的空格上(注意这里不一定是移动最后一个棋子),不能移动到棋盘外,不能移动了就算输,两个人都用最优策略,问先手是否有必胜策略。

这题显然就是SG函数了吧。行与行之间互不影响,所以可以看成n个子游戏,求出它们各自的SG函数然后异或一下就可以了。我们发现只有20列,2^21=2097152,所以我们可以先把行的所有情况的SG函数预处理出来,然后每次询问O(1)就行了。

代码如下:

vart,i,j,m,v,c,res,n,cl:longint;cnt:array[0..22]of longint;a:array[0..10000000]of longint;procedure calc(x,c:longint);
begindec(x,1<<(c-1));inc(c);while c<=20 dobeginif x and (1<<(c-1))=0 then break;inc(c);end;if c>20 then exit;inc(x,1<<(c-1));cnt[a[x]]:=1;
end;procedure init;
beginfor i:=(1<<20)-1 downto 0 dobeginfillchar(cnt,sizeof(cnt),0);for j:=1 to 20 doif i and (1<<(j-1))<>0 then calc(i,j);for j:=0 to 20 doif cnt[j]=0 thenbegina[i]:=j;break;end;end;
end;procedure solve;
beginreadln(n);res:=0;for i:=1 to n dobeginc:=0;read(m);for j:=1 to m dobeginread(v);c:=c or(1<<(v-1));end;res:=res xor a[c];end;if res<>0 then writeln('YES')else writeln('NO');
end;begininit;readln(t);while t>0 dobegindec(t);solve;end;
end.

View Code

转载于:https://www.cnblogs.com/Sakits/p/5770412.html

2016多校联合训练1 B题Chess (博弈论 SG函数)相关推荐

  1. [HDU5788] Level Up [2016 Multi-University Training Contest 5 1008 (2016多校联合训练5)]

    题意 一棵树,每个节点有一个权值 Ai(Ai≤100000) A_i(A_i\le 100000),每个节点有另一个权值 Midi Mid_i,这个权值是以 i i为根子树中第⌈t2⌉\lceil \ ...

  2. [AcWing] 1319.移棋子游戏 博弈论 Sg函数板子题

    题目链接:1319.移棋子游戏 题解 好久没写博弈论的题了,写几道复习一下,博弈论SG主要由两大部分组成:SG函数和SG定理 SG(x)=mex(S),其中S是x的后继状态的SG函数值集合,mex(S ...

  3. 2018ACM暑期多校联合训练参(bao)赛(zha)记

    (这毁了我一个暑假的东西) 时间 2018-7-23至2018-8-22,一星期2场,共10场,每场5个小时. 题目链接(楼教主:"是男人就过八(116)题") 评分规则 单场得分 ...

  4. 牛客网多校联合训练1 J Different Integers(可持久化线段树/莫队)

    题意:给你一个L,R区间,让你求1-L和R-n中有多少个数 思路:最美不过夕阳红,一直没想到拼接起来,之前想到拼接,但想的是每次都进行拼接,所以是一个n2lg的操作,最后想到了拼接全部,然后就是一个经 ...

  5. 2017 ACM暑期多校联合训练 - Team 3 1008 HDU 6063 RXD and math (莫比乌斯函数)...

    题目链接 Problem Description RXD is a good mathematician. One day he wants to calculate: ∑i=1nkμ2(i)×⌊nk ...

  6. HDU 2019 Multi-University Training Contest 1 杭电2019多校联合训练赛 第一场 1001 Blank (6578)

    HDU 2019 Multi-University Training Contest 1 杭电2019暑期多校集训第一场 1001 Blank (6578) Problem Description T ...

  7. 2019.09.21 多校联合训练(普及组)

    不要以为普及组的题就很和谐.. 勇者斗恶龙 一.题目 现在有一条 n 头龙,生命值为 h,勇士想要打败这条作恶多端的龙. 勇士攻击第 i 个头会造成 min(h,atki) 点伤害,即龙的生命值减少 ...

  8. 2019.09.15 多校联合训练(提高组)

    能量获取 一.题目 "封印大典启动,请出Nescafe魂珠!"随着圣主applepi一声令下,圣剑护法rainbow和魔杖护法freda将Nescafe魂珠放置于封印台上.封印台是 ...

  9. 2017ACM暑期多校联合训练 - Team 7 1009 HDU 6128 Inverse of sum (数学计算)

    题目链接 Problem Description There are n nonnegative integers a1-n which are less than p. HazelFan wants ...

最新文章

  1. tomcat远程调试
  2. rms | 如何绘制模型带置信区间的预测曲线
  3. laravel字符截断
  4. DataList控件嵌套,激发内部控件事件
  5. 【转】Linq 求和,求平均值,求最大,求最小,分组,计数
  6. Vue.js 5 @慕课网
  7. python翻译-50 行代码,实现中英文翻译
  8. 索尼MUC-M2BT1换电池+爆改
  9. Verilog编程之道 - Verilog语言特性
  10. 软工专硕考研_03 2018年考研经验贴:西安交通大学软件工程专硕
  11. 机器学习_深度学习毕设题目汇总——语音
  12. Renderbus瑞云渲染正式支持UE云渲染!离线渲染+实时渲染=渲染起飞!
  13. 操作系统春招面试复习之:进程管理
  14. echart 三维可视化地图_实测三个工具后,我终于找到了地图可视化的神器
  15. 石膏板建筑材料英国UKCA认证—EN 520
  16. 高防服务器防御中“清洗”是什么意思
  17. C语言中,声明和定义的区别
  18. 一文读懂物联网 MQTT 协议之实战篇
  19. echarts xy轴虚线展示 字体颜色修改
  20. 帝国CMS 邮件验证功能或者说不能发邮件以及常见的错误

热门文章

  1. 神经网络风格迁移更新篇
  2. 强化学习《基于策略价值 - Actor-Critic》
  3. 【计算机网络】 —— 标准化工作及相关组织
  4. matlab对文本文件的读写
  5. 关于快速排序的一些理解
  6. Struts学习笔记--导航
  7. 【入门4】数组 (今天刷洛谷了嘛)
  8. python123测试题_Python练习题
  9. 凸透镜成像动画可拖动_光学实验二:探究凸透镜成像规律
  10. db2有主键时默认hash分区_不允许设置db2主键问题的解决