博弈论(六)——#10248. 「一本通 6.7 练习 5」取石子游戏
题目链接:https://loj.ac/problem/10248#submit_code 解题思路 神仙题目,迷一般的状态转移,看了yyb大佬的题解,才算明白一点。我们定义L[i][j]表示区间[i,j]左边(即i-1位)加上一堆石子L[i][j],能使先手必败,R[i][j]表示区间[i,j]右边(即j+1位)加上一堆石子R[i][j],能使先手必败。首先,边界L[i][i],R[i][i]肯定是a[i] (Nim博弈)。然后最后只要判断a[1]是否等于L[2][n]就能判断先手必胜还是必败了。 再看状态转移,L[i][j]由L[i][j-1]与R[i][j-1]转移过来,R[i][j]由R[i+1][j],L[i+1][j]转移过来,先看L[i][j],我们设L=L[i][j-1],R[i][j-1],x=a[j]。 R=x,L[i][j]=0,因为此时已经是必败态了,不必再添了。 x<L&&x<R,L[i][j]=x,此时两侧石子一致,无论先手怎么去,后手只要模仿先手在另一侧取相同的数量,这样就能保证先手先取完,此时左侧或右侧肯定有一堆没取完,此时可以等价的认为,当前是先手从L或R取了一定数量的石子转移过来的,此时无论后手怎么取都是必胜的。 L<x<R,L[i][j]=x+1,若先手在左侧取,剩下石子为rest。rest=0,等价于先手在R的状态下