0%

矩阵玩小凹

【集训队作业2018】矩阵玩小凹

题意:

一个n×mn\times m的矩阵An,mA_{n,m},其中的元素是[0,1][0,1]中的随机实数,设si=Ai,js_i=\sum A_{i,j}Ex(minsik)Ex(\lfloor\min s_i\rfloor^k)

(因为没发现能交的地方,random了几组数据放在了矩阵玩小凹上(并不保证写对了))

解:

因为每一行本质相同,所以我们只考虑第一行

fif_is1=i\lfloor s_1 \rfloor=i的概率,did_imin(si)=i\lfloor\min(s_i)\rfloor=i的概率,那么答案就是i=1m1ikdi\sum\limits_{i=1}^{m-1}i^kd_i

同时di=(j=infj)n(j=i+1nfj)nd_i=(\sum\limits_{j=i}^{n} f_j)^n-(\sum\limits_{j=i+1}^{n}f_j)^n

这都是好算的,我们考虑fif_i怎么算

gi=j=1iA1,jj=1iA1,jg_i=\sum_{j=1}^{i}A_{1,j}-\lfloor\sum_{j=1}^{i}A_{1,j}\rfloor,容易发现这也是[0,1][0,1]内随机生成的

那么s1=i=2m[gi<gi1]\lfloor s_1\rfloor=\sum\limits_{i=2}^m[g_i<g_{i-1}]

因为如果当前的gig_i小于上一个gi1g_{i-1}说明一定“溢出”了一个整数位(因为Ai,j[0,1]A_{i,j}\in[0,1]

也就是说fif_i就是随机[0,1][0,1]排列种上升的位置有ii个的概率(这里我们忽略了存在相同的数字,因为在实数里随机出两个同样的数字的概率基本无)

那这个东西,我们把随机排列nn中有ii个上升位置的方案数

就是欧拉数ni\left\langle\begin{matrix}n \\ i\end{matrix}\right\rangle

实际上我们有ni=(1)i(n+1i)(mi+1)n\left\langle\begin{matrix}n \\ i\end{matrix}\right\rangle=\sum(-1)^{i}\binom{n+1}{i}(m-i+1)^n

证明有亿点难

对于x1+x2++xnxxi0x_1+x_2+\dots+x_n \le x \quad x_i \ge 0的超立方体体积记作Vn(x)V_n(x)

容易发现h1(x)=xh_1(x)=x

Vi(x)=0nhi1(t)dtV_i(x)=\int_0^nh_{i-1}(t)\rm{d}t

并不需要技巧就能得出Vi(n)=nii!V_i(n)=\frac{n^i}{i!}

考虑最原始的含义,i=0mni\sum\limits_{i=0}^m\left\langle\begin{matrix}n \\ i\end{matrix}\right\rangle就是s1i+1\lfloor s_1\rfloor\le i+1的概率,容斥x>1x> 1的个数(因为Ai,j[0,1]A_{i,j}\in[0,1]),那么

i=0mni=i=0m+1(1)i(ni)Vn(mi+1)\sum\limits_{i=0}^m\left\langle\begin{matrix}n \\ i\end{matrix}\right\rangle=\sum\limits_{i=0}^{m+1}(-1)^i\binom{n}{i}V_n(m-i+1)

差分一下就能得到ni=(1)i(n+1i)(mi+1)n\left\langle\begin{matrix}n \\ i\end{matrix}\right\rangle=\sum(-1)^{i}\binom{n+1}{i}(m-i+1)^n

这个是ini^n(1)i(n+1i)(-1)^i\binom{n+1}{i}的卷积,NTT O(nlogn)O(n\log n)解决