首页 > 其他 > 详细

UOJ609. 【UR #20】金坷垃

时间:2021-04-06 12:41:58      阅读:14      评论:0      收藏:0      [点我收藏+]

\(x_i\)在实数区间\([a_i,a_i+m]\)内等概率随机。

对于每个\(k\),问第\(k\)小期望是多少。

\(n\le 2000\)


\(f_i(x)\)表示第\(i\)个大于\(x\)的概率。显然\(ans_i=\int f_i(x)\)

可以得到\(f_i(x)=[y^{i-1}]\prod_j (P(x_j<x)y+1-P(x_j<x))\)。其中\(P(x_j<x)\)是关于\(x\)的函数,表示\(x_j<x\)的概率,是一个分段函数。

枚举每个极小段暴力计算,于是可以得到\(O(n^4)\)的做法;由于相邻段之间的变化不会太多,用乘除一个短多项式来搞,于是可以得到\(O(n^3)\)

进一步搞。设\(g_i(x)\)表示有至少\(i-1\)个数小于\(x\)的概率。如果算出\(g_i\)可以容斥得到\(f_i\)。现在有\(g_i(x)=[y^{i-1}]\prod(P(x_j<x)y+1)\)

\(G(x)=\prod(P(x_j<x)+1)\)。考虑到高阶求导的过程,相当于选择一些因式对其求导,然后加起来。在这题中,把常数的因式去掉,那么对某个因式求导是\(\frac{1}{m}\)。于是\(g_i(x)\)就相当于\(G(x)\)的高阶导数乘某个系数。

现在要对每个关键点求\(\int g_i(x)\)。于是可以先枚举关键点,再把\(G(x)\)的高阶导数贡献到每一个\(g_i(x)\)\(G(x)\)可以通过上一个区间的\(G(x)\)乘除一些短多项式得到,求高阶倒数的贡献写出来是个卷积。于是时间\(O(n^2\lg n)\)


没写。

UOJ609. 【UR #20】金坷垃

原文:https://www.cnblogs.com/jz-597/p/14620228.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!