合并锅子自学式题解
信星社 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\),则转移方程为:
注意这个 \(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\),即:
写完发现跟 \(x\) 无关,中括号为 \(1\) 的个数恒定为 \(v_l-u_r+1\),那么就是:
提出来无关项,发现 \(l\) 和 \(r\) 关联项可以根据乘法分配律拆开,设对于固定的 \(l\) 合法的 \(r\in[L,R]\):
预处理逆元以及后缀和即可,计算是 \(O(n)\) 的。
最后我们的答案就是:
因为原式是 \(n-2\) 次多项式,可以拉格朗日插值 \(n-1\) 个点写成这样:
其中 \(t_i\) 是我们自己定的,所以拉格朗日基函数的积分是个可以预处理的常数。
分母是常数,分子展开后一定是多项式,系数我们可以简单用 \(O(n^2)\) dp 算出来,然后套用定积分公式:
然后我们就做完了这个题。

浙公网安备 33010602011771号