首页 > 其他分享 >题解 Topcoder SRM789 FollowingNim

题解 Topcoder SRM789 FollowingNim

时间:2023-02-23 08:33:20浏览次数:55  
标签:leq 题解 石子 玩家 必胜 如果 Topcoder FollowingNim

题目链接

题意

给定 \(n\) 堆石子 \(a_1,a_2,\cdots,a_n\) 和一个集合 \(S\),两名玩家轮流行动,每次可以在某堆石子中取走 \(x\) 个(不能不取)。特殊地,如果 \(x \in S\),那么下一次行动的玩家只能在同一堆石子中取。不能行动者负。

注意如果某名玩家选择将某堆大小为 \(x\) 的石子取空并且 \(x \in S\),那么下一名玩家告负,因为它被迫尝试对一个空堆进行操作。

\(1 \leq n,|S| \leq 50,1 \leq a_i \leq 100,\ \forall x \in S, 1 \leq x \leq 100\)

题解

非常有意思的一道题。

考虑一个博弈论经典策略,即将对手的必胜策略变成自己的。

如果先手取了某个 \(x \in S\),此时如果后手的必胜策略是取 \(y \notin S\),那么先手可以直接取 \(x+y\)(\(x+y\) 是否属于 \(S\) 并不重要,如果是只会让后手更难赢),把后手的必胜策略变成自己的,因此后手不会这么做。

因此,如果先手取了 \(x \in S\),那么后手也一定取 \(y \in S\)。如果存在某个堆,使得先后手轮流取在 \(S\) 中的元素,先手胜利,那么先手就直接胜利。我们定义这个局面为好的。

否则,先手不能取 \(x \in S\),并且要保证取了之后的局面仍然不能是好的。为了方便起见,我们令后手可以随意行动,如果此时后手存在必胜策略,那么根据上面的结论,后手取 \(y \in S\) 时也必然存在必胜策略。如果后手可以随意行动,那么这个游戏等价于若干个相同游戏的组合,求出 SG 函数后计算异或即可。

标签:leq,题解,石子,玩家,必胜,如果,Topcoder,FollowingNim
From: https://www.cnblogs.com/liuzongxin/p/17146630.html

相关文章

  • Docker 快速学习手册及相关笔记 附带一些问题解决方案
    参考与前言Docker官方教程【英文】:https://docs.docker.com/get-started/WindowsDocker安装|菜鸟教程(runoob.com)Docker教程|菜鸟教程Docker并非是一个......
  • LG8768 题解
    题意传送门求长度为\(n\)的序列\(a\)的个数对\(998244353\)取模的结果,其中\(a\)满足:\(a_1=w\)\(a_{i-1}+L\lea_i\lea_{i-1}+R\(\foralli\in[2,n])\)\(a_......
  • 在Windows丢失xlive.dll的问题解决
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损......
  • HDFS数据目录挂载在根目录下至磁盘爆满问题解决
    1、查看hdfs-size.xml文件获取数据目录位置vim/opt/hadoop/etc/hadoop/hdfs-site.xml<property><name>dfs.datanode.data.dir</name><value>/home/hadoop-dat......
  • C1002 泥泞的牧场题解
    题目描述大雨侵袭了牧场。牧场是一个\(R\timesC\)的矩形,其中\(1\leqR,C\leq50\)。大雨将没有长草的土地弄得泥泞不堪,可是小心的奶牛们不想在吃草的时候弄脏她们的蹄......
  • vue开发大屏项目屏幕适配问题解决方案
    1.新建自定义指令文件如下: 2.文件中插入一下代码:import{App,Directive,DirectiveBinding,nextTick}from'vue'import{throttle}from'lodash-es'import......
  • C1001 游戏题解
    题目描述\(everlasting\)觉得太无聊了,于是决定和蒟蒻\(yyc\)玩游戏!他们会玩\(T\)轮游戏,每轮游戏中有若干局,他们的初始积分为\(1\),每局的分值为\(k\),输的人的得分......
  • Vue前端框架Element 的form表单项el-form-item的label中空格不起效和多个空格只显示一
    搜索了一下,大部分是说使用slot解决,但是使用&nbsp;&nbsp;只显示一个后又看到一篇文章Vue使用&nbsp空白占位符-钟小嘿-博客园(cnblogs.com)使用转义,但要用v-html,......
  • 第九届蓝桥杯题解
    第九届蓝桥杯题解A,第几天packagetrain;publicclasstest_27{publicstaticvoidmain(String[]args){System.out.println(31+29+31+30+4);}}......
  • P9064 [yLOI2023] 苦竹林 题解
    题目传送门题目大意给定一个长度为\(n\)序列\(a\),从中选取\(m\)个,满足对任意的\(1\leqi,j\leqm\),都有\(|b_i-b_j|\leq\varepsilon\),其中,\(b\)是选出来......