Ticket Game CodeForces - 1215D(博弈题,巴什博弈思维)

题意:两个人玩游戏,通过轮流填数字(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值