牛客练习赛 17 T6 玩游戏 神博弈

文章目录


作为T6,思想高妙,好题.

题意

a , b , a b . A l i c e , a , a , b . a = b , A l i c e , B o b . , . 给两个字符串a,b,a的长度大于等于b.\newline 由Alice先手,两人轮流去掉a的首字符或者尾字符,直到a,b长度相同.\newline 如果剩下的a=b,Alice获胜,否则Bob获胜.\newline 问两人都取最优策略,谁能够获胜.

题解

感谢LMOliver的高妙解释.
我们将题目转化成如下的模型.
把字符串 a a 转化为一条长度为 a |a| 的纸带,如果 a a 从第 i i 位开始能够匹配 b b ,则纸带的第 i i 位涂成黑色,否则涂成白色.
那么要问的就是两人轮流剪掉纸带的最左边的格子或者最右边的格子,最终能否使得纸带最左边的格子为黑的情况.
我们不妨分类讨论.
首先定义一种策略叫反向,即每次剪掉和对方上一轮方向相反的格子.
如果去掉字符的个数是奇数,则先手考虑第一次随机剪去一个方向的格子,接下来每轮都反向,而且不管他的目标是什么,他接下来都会无脑反向,因为Ta深知对方也会这么做.
这时候前面不管,考虑还剩中间3个格子的情况.
那么这时候如果中间那个格子是黑色或者左右都是黑色,Alice就会获胜,否则Bob获胜.
同理是偶数的情况是剩下中间两个格子,除非这两个格子都是黑色,否则Bob获胜.
暴力对这几个位置判一下 a a 是否能在这个位置匹配 b b 即可.
代码就不发了,谢谢大家.

猜你喜欢

转载自blog.csdn.net/qq_31908675/article/details/83147943