ABC270Ex
给定 \(0=a_1\leq a_2\leq \cdots \leq a_n\leq 10^{18}\),\(a_n>0\)。初始有 \(n\) 个均为 \(0\) 的计数器 \(c_{1\cdots n}\),每次操作均匀随机一个 \(1\leq i\leq n\),然后令 \(c_i=0\),并把其它 \(c\) 都加一。不断执行操作直到对于每个 \(i\) 都满足 \(c_i\ge a_i\),求期望操作次数,\(\bmod 998244353\)。
\(2\leq n\leq 2\times 10^5\)。
终止条件显然等价于对于每个 \(i\),距离上一次操作 \(i\) 已经再进行了至少 \(a_i\) 次操作。于是可以转化为有一个变量 \(x\),意义为当前最大的 \(a_i-c_i\),初始值为 \(a_n\),则操作等价于每次随机一个 \(i\),令 \(x\gets \max\{x-1,a_i\}\),直到 \(x=0\)。
暴力地,记 \(f_i\) 表示 \(x\) 从 \(i\) 到 \(i-1\) 的期望操作次数,则 \(f_i=1+\frac{1}{n}(\sum_{a_k\ge i} f_{i\sim a_k})\),额外统计 \(a_k=i\) 的个数并移项除回去即可。
发现 \(i\in(a_{k-1},a_{k}]\) 里的转移是类似的,另设 \(F_k\) 表示 \(x\) 从 \(a_k\) 到 \(a_{k-1}\) 的期望操作次数,转移仍然先考虑一格一格地进行:\(x\in(a_{k-1},a_{k}]\),假设 \(a_{j\sim i}\) 的值都相等,一起转移它们的 \(F_k\),令 \(f_i\) 为初始为 \(a_k\),到达 \(i\) 的期望操作次数,则:
默认转移这一段时 \(f_{a_k+1}=0\),转移完成后更新 \(F\)。
\(f\) 的单步转移容易写成 \(X\gets A\times X+B\) 的形式,找到通项之后快速幂,类似同一场的 G。
\(O(n\log V)\)。