抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

给你一块巧克力,横着最多切 aa 刀,竖着最多切 bb 刀,定义每切一刀的收益为切完后所有巧克力的和,每次随机在能切的所有地方等概率随机切一刀,求切 k(ka+b)k(k\le a + b) 到刀得到收益的期望。答案对 998244353998244353 取模。

a,b1018a, b\le 10^{18}

我们考虑每个正方形左下角(如下图)为贡献,如黄色格子的贡献我们看成是点 PP 的贡献,那我们可以把点分成三类:中间的(红色点),边缘的(蓝色点),左下角的(绿色点)。

如果一个点“暴露在了外面”,即该点对应的方块成为了整个方块的左下角,那么之后每切一次它就会对答案有 11 的贡献。

首先我们来看中间的点(红点)。

对于每个点,如果第 ii 次切割后它暴露在外面,那么前 ii 次切割必定有一次切了它所在竖列,还有一次且了它所在横行。所以有 (i2)\binom{i}{2} 中排列方案。而从这么多横行于纵列中选 22 条线的方案数为 (a+b2)\binom{a+b}{2},所以第ii 次切完后该点暴露在外面的概率为:

E(i)=(i2)(a+b2)E(i)=\frac{\binom{i}{2}}{\binom{a+b}{2}}

由于切了 kk 次,所以每个点贡献的期望为:

i=1kE(i)=i=1k(i2)(a+b2)=i=1k(i2)(a+b2)=(k+13)(a+b2)=(k+1)k(k1)6(a+b)(a+b1)2=(k+1)k(k1)3(a+b)(a+b1)\sum_{i=1}^k E(i)=\sum_{i=1}^k\frac{\binom{i}{2}}{\binom{a+b}{2}}=\frac{\sum_{i=1}^k\binom{i}{2}}{\binom{a+b}{2}}=\frac{\binom{k+1}{3}}{\binom{a+b}{2}}=\frac{\frac{(k+1)\cdot k\cdot(k-1)}{6}}{\frac{(a+b)(a+b-1)}{2}}=\frac{(k+1)\cdot k\cdot(k-1)}{3\cdot(a+b)\cdot(a+b-1)}

总共有 abab 个红点,所以总的期望为:

(k+1)k(k1)3(a+b)(a+b1)ab\frac{(k+1)\cdot k\cdot(k-1)}{3\cdot(a+b)\cdot(a+b-1)}\cdot ab

然后是边上的点(蓝点)。

每次切都会多一个蓝点,所以贡献一定为:

i=1ki=k(k+1)2\sum_{i=1}^k i=\frac{k(k+1)}{2}

最后是左下角的绿点,每次切都会它都会有 11 的贡献,所以是kk

所以总的贡献为:

(k+1)k(k1)ab3(a+b)(a+b1)+k(k+1)2+k\frac{(k+1)\cdot k\cdot(k-1)\cdot ab}{3\cdot(a+b)\cdot(a+b-1)}+\frac{k\cdot(k+1)}{2}+k

优秀的 O(1)\mathcal{O}(1) 算法。

评论