合并锅子自学式题解

信星社 2026 年国庆假期公益集训模拟赛 T4,从 gpt 老师那学到了点东西,发一篇题解巩固理解。

原题大意

有 \(n\) 口黑锅按顺序排成一行,第 \(i\) 口黑锅的大小为正整数 \(a_i\)。每次操作从当前所有相邻的黑锅对中等概率选择一对,将它们合并为一口新黑锅。新黑锅的大小为两者大小之和,并占据这两口黑锅原来的位置。其余黑锅的相对顺序不变。

第一次出现大小大于或等于 \(T\) 的黑锅时,操作立即停止。给定一口初始黑锅的编号 \(s\),求此时新产生的黑锅包含第 \(s\) 口初始黑锅的概率,\(2 \le n \le 5000\)。

做法

首先合并等价于删隔板,我们定义第 \(i\) 个隔板是第 \(i\) 个锅子右边的隔板。概率题难做的地方通常是每一步的概率跟上一步的选择有关,这很难做,所以就有一个神奇办法让其独立。

给每个隔板赋值一个删除时间 \(t\in [0,1]\),那么此时隔板 \(i\) 已经被删除的概率是 \(t\),否则为 \(1-t\),设 \(p=1-t\)。

设 \(F_i(t)\) 为 \([1,i]\) 都还没有出现 \(\geq T\) 的锅子的概率。合法转移显然是一段区间,转移点 \(j\) 要满足 \(S_i-S_j< T\),其中 \(S_i\) 是锅大小的前缀和,我们设这个最小的合法 \(j\) 为 \(u_i\),则转移方程为:

\[F_i(t)=\sum_{u_i\leq j<i} t^{i-j-1}pF_j(t) \]

注意这个 \(q\) 如果 \(j=0\) 为 \(1\),因为你不需要给滚木插一个存活的隔板。\(u_i\) 容易计算,双指针即可。

同理我们倒着做一遍,设 \(G_i(t)\) 为 \([i,n]\) 都没出现 \(\geq T\) 的锅子的概率,\(v_i\) 为满足 \(S_j-S_i<T\) 的最大的 \(j\)。

那么在固定 \(t\) 的情况下,怎么算合法的概率呢?

考虑枚举包含 \(s\) 的区间 \([l,r]\),左边和右边必须合法(没有超过 \(T\) 的),而且区间内是两个整块,本身合法,合并后超过限制。所以我们还需要一个合并点,设为 \(x\),即:

\[H_s(t)=\sum_{l\leq s\leq r}\sum_{l\leq x\leq r}[u_r\leq x\leq v_l]F_{l-1}(t)G_{r+1}(t)p^2t^{r-l-1} \]

写完发现跟 \(x\) 无关,中括号为 \(1\) 的个数恒定为 \(v_l-u_r+1\),那么就是:

\[H_s(t)=\sum_{l\leq s\leq r,v_l-u_r+1>0}(v_l-u_r+1)F_{l-1}(t)G_{r+1}(t)p^2t^{r-l-1} \]

提出来无关项,发现 \(l\) 和 \(r\) 关联项可以根据乘法分配律拆开,设对于固定的 \(l\) 合法的 \(r\in[L,R]\):

\[H_s(t)=p^2\sum_{l\leq s}\Bigg(\bigg(t^{-l}v_lF_{l-1}(t)\sum_{L\leq r\leq R}G_{r+1}(t)t^{r-1}\bigg)+\bigg(t^{-l}F_{l-1}(t)\sum_{L\leq r\leq R}(1-u_r)G_{r+1}(t)t^{r-1}\bigg)\Bigg) \]

预处理逆元以及后缀和即可,计算是 \(O(n)\) 的。

最后我们的答案就是:

\[\int_{0}^{1}H_s(t)dt \]

因为原式是 \(n-2\) 次多项式,可以拉格朗日插值 \(n-1\) 个点写成这样:

\[\int_{0}^{1}H_s(t)dt=\int_{0}^{1}\sum_{i=1}^{n}H_s(t_i)\ell_i(t)dt=\sum_{i=1}^{n}H_s(t_i)\bigg(\int_{0}^{1}\ell_i(t)dt\bigg) \]

其中 \(t_i\) 是我们自己定的,所以拉格朗日基函数的积分是个可以预处理的常数。

\[\ell_i(t)=\frac{\prod_{j\neq i}(t-t_j)}{\prod_{j\neq i}(t_i-t_j)} \]

分母是常数,分子展开后一定是多项式,系数我们可以简单用 \(O(n^2)\) dp 算出来,然后套用定积分公式:

\[\int_{0}^{1}t^kdt=\frac{1}{k+1} \]

然后我们就做完了这个题。

posted @ 2026-10-04 22:00  司马只因锥  阅读(15)  评论(0)    收藏  举报