S42006.20-6 博弈石子

传统题 时间 1000 ms 内存 256 MiB 3 尝试 0 已通过 0

20-6 博弈石子

博弈石子

刻度对齐了,但Echo-0还留下了一个游戏——石子博弈。

"博弈?"CC问。

"对。"你说,"一堆石子,两个人轮流取。每次可以取1到mm个。取到最后一个的人赢。"

"谁赢?"

"看nnmm。"你说,"如果n%(m+1)==0n\%(m+1)==0,先手必败;否则先手必胜。"

"为啥?"

"策略。"你说,"后手总能和先手凑成m+1m+1。比如m=3m=3,先手取1,后手取3;先手取2,后手取2。"

"凑成4?"

"对。"你说,"1+3=41+3=42+2=42+2=4。"

"如果n=4n=4?"

"先手取多少,后手都能取完。"你说,"先手必败。"

"如果n=5n=5?"

"先手取1,剩4——后手面对必败态。"你说,"先手必胜。"

"简单。"

"对。"你说,"但Echo-0把它变复杂了——多堆石子,每次只能在一堆取。"

"多堆?"

"Nim游戏。"你说,"每堆石子的数量异或起来——如果异或和为0,先手必败;否则先手必胜。"

"异或?"

"对。"你说,"按位异或——相同为0,不同为1。"

"第47堆。"你说,"47个石子。"

"单独一堆?"

"对。"你说,"异或和就是47——不为0,先手必胜。"

"直接取完?"

"对。"你说,"直接取完。"

CC拿起一颗石子——是某种矿区的结晶,半透明,泛着微光。

"这算啥?"她问。

"算……回忆。"Echo说,"Echo-0以前也玩过这个游戏。"

"和谁?"

"和自己。"Echo说,"她和自己下棋,和自己博弈。"

"赢了吗?"

"没有。"Echo说,"和自己博弈,永远赢不了。"

"那现在呢?"

"现在不一样了。"Echo说,"现在有你们。"


题目描述

给定nn堆石子,第ii堆有aia_i个。两人轮流,每次从一堆中取任意正数个。取到最后一个石子者胜。判断先手是否必胜。

输入格式

第一行nn。第二行nn个整数aia_i

输出格式

先手必胜输出"Yes",否则输出"No"。


输入样例

5

输出样例

0

提示

  • Nim游戏:异或和为0则先手必败,否则必胜。
  • 多堆扩展:Sprague-Grundy函数。

在线编程 IDE

建议全屏模式获得最佳体验