题意:两个人玩游戏,通过轮流填数字(0~9),若最终左右两边的和相等,后手赢,否则先手赢。起始有部分数字和空格。
官方题解:
题解翻译:
让我们把余额表示为左半部分数字和右半部分数字和的差。也让我成为最小可能的余额(如果我们用00的左半部替换所有的问号和99的右半部分中的所有问号都可以计算),让RR成为最大可能的平衡。
当且仅当l+r2=0l+r2=0时,第二个玩家获胜。我们就票子上剩下的问号做归纳证明吧。
如果所有的字符都是数字,那么第二个玩家只有在票子满意的情况下才能获胜,也就是当L+R2=0L+R2=0时。
好吧,现在假设问号是偶数,现在轮到第一个玩家了。每转一圈,R-LR-L的值减小99,并且可以将LL设置为从当前LL到L+9L+9的任意数字。如果l+r>0l+r>0,那么第一个玩家可以使ll尽可能大,并将其设置为l+9l+9。第二个玩家在回合中能做的最好的事情是将r r设置为r-9r-9(保持l l不变),l+rl+r的值将与前两回合相同。L+R<0L+R<0的情况也可作类似分析。在l+r=0l+r=0的情况下,第二个玩家有一个对称的策略。
我的理解:类似于巴什博弈,考虑后手赢的情况,其余情况则为先手赢。
此题要注意两个问题,一:要填的空格,二:起始两边的和的大小;
若只考虑后手赢的情况,有两个阶段。一,两边都有空格时:先手为了让自己赢,在和大的一边放9,后手也只能在和小的这一边放9,则两边,和差sum,空格差k都不变;
二:只有一边有空格且另一边的和较大:因为不知先手放啥,特殊放0或9,故每一回合(k/2)保持放九个,故只有(k/2)*9==sum时,后手才会赢。
Monocarp and Bicarp live in Berland, where