Codeforces 1477F. Nezzar and Chocolate Bars
好题! (opens new window)
题意:你有一条长为的线段,初始时线段上已经有个分割点将其划分为段,其中第段长为。每次在中随机一个实数,在线段上加入坐标为的分割点,直到所有分割点将线段分割为每段长度不超过的若干段。求新加入的分割点个数的期望。模。
题解:
令生成函数对应的指数生成函数为。
首先考虑的情况。假设第步及以内能够结束的概率为,那么答案为。考虑如何计算。
显然,第步及以内可以结束等价于无论是否达到要求强行做到第步,此时符合要求。考虑每一步的随机都是独立的,那么随机生成的坐标点列是均匀分布在中的,每一个特定的坐标点列被生成的概率元为:
但从中无法很好地分析是否满足的要求,考虑对该空间进行转化。在中的点坐标几乎都是两两不同的,将其排序,转化为,其中,令,则中的每个点几乎都对应个中的点,于是每个中的点的概率元为。
为了判断是否满足要求,进一步将唯一对应到其差分数组,均匀分布在空间中,每个点的概率元仍然为。顺便说明,这证明了。
于是在中,符合要求等价于且,于是我们有符合要求的概率等于中的点的概率元的和,即:
现在关注如何求出,定义可重集。
容斥中的限制,就可以将几乎完全地用若干个表示出来(除若干边界上的点以外):
于是:
而对于中的点,可以将满足的减去,从而与中的点一一对应,于是与的积分相等,由前文证明的结论可以得到:
回代到的表达式中,可以得到:
于是没有初始分割点的答案就为,下面考虑存在初始分割点的情况。
定义,,仍然如上定义,,则此时的值为:
即:
我们要求的答案是,那么首先考虑的表达式:
括号外的部分全部相乘,即为,考虑括号内的部分,可以发现相乘之后可以表示为若干项的线性组合,于是可以利用以为下标的二维卷积计算每一项的系数,就得到了的一个以若干项的线性组合表示的表达式。
最后,只需要考虑如何计算即可。考虑:
令,于是:
又,于是,有。
利用前文的分析,用分治计算二维卷积,可以在的时间内解决问题。最后记得处理边界条件,如的情况可能要令。