QOJ17256 Keep or Gamble 题解

本质推式子题目。

不妨考虑什么时候应该停止,什么时候应该继续往下走。

不妨将四种卡片分别记作 分别表示分数是 的卡片, 表示直接结束游戏的卡片。

首先一个观察是 卡片没有用。不妨考虑暴力 DP,枚举下一种可能。你可以将“第一次抛的结果”替换成”第一次抛到非 卡片的概率“,这样就变成了一个条件概率,并且这个条件概率和剩下的 卡片数量无关。

另外一个观察就是 的卡片在没有被淘汰的时候一定是 张。

因此我们只需要记录当前抽了几张 卡片几张 卡片即可。因此我们有一个简单的 的 DP。当后续状态可以带来的增量为负时,我们就应该停下来。

但是这个 DP 其实没什么常规手段去优化,我们得想一些更强的性质。

我们不妨放弃考虑后续所有状态的增量,转而考虑单步的增量。假设你有了 卡片和 卡片。

,我们有 的概率抽到 的概率抽到 的概率直接输掉,失去所有钱,获得

那么,此时你单次期望的收益就是这个式子:

那么,看上去如果这个值为负,那么这一步就是亏的。

但是,有没有可能后续会带来更大的收益呢?

实际上也不可能。如果此时你抽了一张 或者 ,那么其中的每个值都会变小,因此一旦一个状态单步为负,后续所有状态都是负的。

因此,一旦单步期望变成负的,我们就应该直接卷款跑路!

进一步的,我们可以得到这个式子:

其中, 表示所有抽出来 卡片和 卡片的方案数, 表示所有卡片中抽出来 张卡片的概率。 满足

简单解一下右侧的不等式,就可以得到

我们希望用低于 的复杂度进行计算。因此我们不妨随便枚举一点东西,然后推一下式子。

注意到式子里有大量的 ,不妨令 ,做变量代换。

提出来和内层变量 无关的项。

我们主要关注右侧第二个求和号的计算。

括号全部展开。

拆拆拆。

先看左边。

里面和 全部无关。因此全部提出来。

我们实际上要计算的是这个。

请注意,这个虽然看上去很像范德蒙德卷积,但是实际上不是。

因为我们的下标没写全。下标需要满足 。令 ,代换之后也就是 。也就是

换句话说求和号是有下界的。因此并不能直接范德蒙德卷积。

接下来考虑右侧。

提取公因式。

无关项提出来。

实际上我们要计算

请注意

因此实际上我们要计算

对于 ,求和下界是 。实际上等号取等与否无所谓,因此从 开始求和也是可以的。

注意到当 增加的时候,求和下界实际上增加的并不多。因此我们如果能从 推到 ,那么我们只需要手动减去 项就可以用来计算 时候的答案了。

我们目前的首要目标就是通过 推出来

推出来 是容易的。因为我们有

因此

因此我们可以直接用 减掉 ,有

代换。

和我们刚刚推出来的式子只有下标变换了 。手动处理一下这几项即可。

难办的是

对称的,我们考虑

在前一项组合数两个都减少 的情况。 的递推和 类似,这里不再赘述。

我们考虑我们最初的形式:

实际上是,

我们希望消掉右侧的 。此时我们的 就可以派上用场了。类似的,我们有

也就是

我们将两项相加,得到

因此,我们推出 之后,可以使用 来推出

综上,式子里的所有部分都是可以递推的了。

代码反正能写。之后补上。


QOJ17256 Keep or Gamble 题解
https://blogs.sving1024.top/posts/43279/
发布于
2026年8月2日
许可协议