From 8f454b820c2cd655fc7a691485513ee158304807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 26 Dec 2023 08:33:19 +0800 Subject: [PATCH] 'commit' --- TangDou/AcWing_TiGao/T5/GameTheory/1321.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/TangDou/AcWing_TiGao/T5/GameTheory/1321.md b/TangDou/AcWing_TiGao/T5/GameTheory/1321.md index a8dca4e..759f309 100644 --- a/TangDou/AcWing_TiGao/T5/GameTheory/1321.md +++ b/TangDou/AcWing_TiGao/T5/GameTheory/1321.md @@ -92,22 +92,20 @@ NO 这个情况比较复杂,因为如果某个人把$1$减少$1$,那么这个堆同时也消失了,相当于操作数减少了$2$。 -下面我们采用了动态规划的思想,用记忆化搜索来模拟演示一下: -$f[a][b]$ 表示当数量为$1$的堆有$a$个,剩下的堆的操作数是$b$的时候,先手是必胜还是必败, -f[a][b]=1 表示必胜,否则必败。$b$中不会出现数量为$1$的堆,除非只剩下一个堆了。 +本题中可能存在一些堆的石子个数等于$1$: +* 假设有$a$堆石子,其中每堆石子个数为$1$ +* 剩余堆的石子个数都严格大于$1$ -情况1: 当a>=2的时候,合并两个数量为1的堆,这样就让b这边的操作数增加了2+(b>0),因为如果原来b大于0,相当于操作数增加了3,否则b原来是0,那么操作是只增加2. -情况2: 和a>0 并且b>0 的时候,我们可以合并一个数量为1的堆和b中一个数量不为1的堆,那么a减少1,b增加1 -情况3:b>=2,我们合并b里面的两个堆或者减少1,无论哪种,都是让b里面的操作数减少1。 -情况4: 当a>0的时候,我们可以减少一个数量为1的堆,这样a就减少1,b不变。 +根据这些数量大于$1$的堆的石子可以求出上述定义出的$b$,我们使用$f(a, b)$表示此时先手必胜还是必败,因为博弈论在本质上是可以递推的,我们可以想出起点,再想出递推关系,就可以递推得到更大数据情况下的递推值,也就是博弈论本质上是$dp$。 +