Codeforces 1477F. Nezzar and Chocolate Bars

好題!

題意:你有一條長爲\(L\)的線段,初始時線段上已經有\(n-1\)個分割點將其劃分爲\(n\)段,其中第\(i\)段長爲\(l_i\)。每次在\([0,L]\)中隨機一個實數\(r\),在線段上加入座標爲\(r\)的分割點,直到所有分割點將線段分割爲每段長度不超過\(K\)的若干段。求新加入的分割點個數的期望。模\(998244353\)

\(n\leq 50,L,K\leq 2000\)

題解:

令生成函數\(f\)對應的指數生成函數爲\(\tilde f\)

首先考慮\(n=1\)的情況。假設第\(i\)步及以內能夠結束的概率爲\(p_i\),那麼答案爲\(\sum_{i\geq 0}(1-p_i)\)。考慮如何計算\(p_i\)

顯然,第\(n\)步及以內可以結束等價於無論是否達到要求強行做到第\(n\)步,此時符合要求。考慮每一步的隨機都是獨立的,那麼隨機生成的座標點列\((z_1,z_2,\dots,z_n)\)是均勻分佈在\(\Omega_L=\{(z_1,z_2,\dots,z_n)|0\leq z_i\leq L,i=1,2,\dots,n\}\)中的,每一個特定的座標點列\((z_1,z_2,\dots,z_n)\)被生成的概率元爲:

\[\frac{\mathrm{d}z}{\iint\cdots\int_{\Omega_L}\mathrm{d}z}=\frac{\mathrm{d}z}{L^n} \]

但從\((z_1,z_2,\dots,z_n)\)中無法很好地分析是否滿足\(\leq K\)的要求,考慮對該空間進行轉化。在\(\Omega_L\)中的點座標幾乎都是兩兩不同的,將其排序,轉化爲\((\hat z_1,\hat z_2,\dots,\hat z_n)\),其中\(0\leq \hat z_1\leq \hat z_2\leq \cdots\leq \hat z_n\leq L\),令\(\hat \Omega_L=\{(\hat z_1,\hat z_2,\dots,\hat z_n)|0\leq \hat z_1\leq \hat z_2\leq \cdots\leq \hat z_n\leq L\}\),則\(\hat \Omega_L\)中的每個點幾乎都對應\(n!\)\(\Omega_L\)中的點,於是每個\(\hat\Omega_L\)中的點的概率元爲\(\frac{n!\mathrm{d}z}{L^n}\)

爲了判斷是否滿足要求,進一步將\((\hat z_1,\hat z_2,\dots,\hat z_n)\)唯一對應到其差分數組\((\hat z_1,\hat z_2-\hat z_1,\dots,\hat z_n-\hat z_{n-1})\),均勻分佈在空間\(\tilde \Omega_L=\{(\tilde z_1,\tilde z_2,\dots,\tilde z_n)|\tilde z_i\geq 0,\sum_{i=1}^n\tilde z_i\leq L\}\)中,每個點的概率元仍然爲\(\frac{n!\mathrm{d}z}{L^n}\)。順便說明,這證明了\(\iint\cdots\int_{\tilde \Omega_L}\mathrm{d}z=\frac{L^n}{n!}\)

於是在\(\tilde \Omega_L\)中,\((\tilde z_1,\tilde z_2,\dots,\tilde z_n)\)符合要求等價於\(0\leq \tilde z_i\leq K,i=1,2,\dots,n\)\(0\leq L-\sum_{i=1}^nz_i\leq K\),於是我們有符合要求的概率等於\(\Omega_K\cap(\tilde \Omega_L\setminus\tilde \Omega_{L-K})\)中的點的概率元的和,即:

\[p_n=\iint\cdots\int_{\Omega_K\cap(\tilde \Omega_L\setminus\tilde \Omega_{L-K})}\frac{n!\mathrm{d}z}{L^n}=\frac{n!}{L^n}\Bigg(\iint\cdots\int_{\Omega_K\cap\tilde \Omega_L}\mathrm{d}z-\iint\cdots\int_{\Omega_K\cap\tilde \Omega_{L-K}}\mathrm{d}z\Bigg) \]

現在關注如何求出\(\iint\cdots\int_{\Omega_A\cap\tilde \Omega_B}\mathrm{d}z\),定義可重集\(\Phi_{A,S}=\{(z_1,z_2,\dots,z_n)|z_i\geq A,i\in S,z_i\geq 0,i\not\in S\}\)

容斥\(\Omega_A\)\(z_t\leq A\)的限制,就可以將\(\Omega_A\)幾乎完全地用若干個\(\Phi_{A,S}\)表示出來(除若干邊界上的點以外):

\[\Omega_A=\sum_{S\subseteq\{1,2,\dots,n\}}(-1)^{|S|}\Phi_{A,S} \]

於是:

\[\iint\cdots\int_{\Omega_A\cap\tilde \Omega_B}\mathrm{d}z=\sum_{S\subseteq\{1,2,\dots,n\}}(-1)^{|S|}\iint\cdots\int_{\Phi_{A,S}\cap\tilde \Omega_B}\mathrm{d}z \]

而對於\(\Phi_{A,S}\cap\tilde \Omega_B\)中的點\((z_1,z_2,\dots,z_n)\),可以將滿足\(i\in S\)\(z_i\)減去\(A\),從而與\(\tilde \Omega_{B-|S|A}\)中的點一一對應,於是\(\Phi_{A,S}\cap\tilde \Omega_B\)\(\tilde \Omega_{B-|S|A}\)的積分相等,由前文證明的結論可以得到:

\[\iint\cdots\int_{\Omega_A\cap\tilde \Omega_B}\mathrm{d}z=\sum_{S\subseteq\{1,2,\dots,n\}}(-1)^{|S|}\iint\cdots\int_{\tilde \Omega_{B-|S|A}}\mathrm{d}z \]

\[=\sum_{i=0}^n(-1)^{i}{n\choose i}\iint\cdots\int_{\tilde \Omega_{B-iA}}\mathrm{d}z=\sum_{i=0}^{\lfloor\frac{B}{A}\rfloor}(-1)^i{n\choose i}\frac{(B-iA)^n}{n!} \]

回代到\(p_n\)的表達式中,可以得到:

\[p_n=\frac{n!}{L^n}\Bigg(\sum_{i=0}^{\lfloor\frac{L}{K}\rfloor}(-1)^i{n\choose i}\frac{(L-iK)^n}{n!}-\sum_{i=0}^{\lfloor\frac{L}{K}\rfloor-1}(-1)^i{n\choose i}\frac{(L-(i+1)K)^n}{n!}\Bigg) \]

\[=\sum_{i=0}^{\lfloor\frac{L}{K}\rfloor}(-1)^i{n\choose i}\Big(1-i\frac{K}{L}\Big)^n+\sum_{i=1}^{\lfloor\frac{L}{K}\rfloor}(-1)^i{n\choose i-1}\Big(1-i\frac{K}{L}\Big)^n \]

\[=1+\sum_{i=1}^{\lfloor\frac{L}{K}\rfloor}(-1)^i{n+1\choose i}\Big(1-i\frac{K}{L}\Big)^n \]

於是沒有初始分割點的答案就爲\(\sum_{i\geq 0}\sum_{j=1}^{\lfloor\frac{L}{K}\rfloor}(-1)^{j+1}{i+1\choose j}\Big(1-j\frac{K}{L}\Big)^i\),下面考慮存在初始分割點的情況。

定義\(q_{i,j}=1+\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}(-1)^k{j+1\choose k}\Big(1-k\frac{K}{l_i}\Big)^j\)\(Q_i=\sum_{k\geq 0}q_{i,k}\Big(\frac{l_i}{L}\Big)^kx^k\)\(p_i\)仍然如上定義,\(P=\sum_{k\geq 0}p_kx^k\),則此時\(p_i\)的值爲:

\[p_i=\sum_{k_1+k_2+\dots+k_n=i}{i\choose k_1,k_2,\dots,k_n}\prod_{j=1}^n\Big(\frac{l_j}{L}\Big)^{k_j}q_{j,k_j} \]

\[\frac{p_i}{i!}=\sum_{k_1+k_2+\dots+k_n=i}\prod_{j=1}^n\frac{\Big(\frac{l_j}{L}\Big)^{k_j}q_{j,k_j}}{k_j!} \]

即:

\[\tilde P=\prod_{i=1}^n\tilde Q_i \]

我們要求的答案是\(\sum_{k\geq 0}(1-k![x^k]\tilde P)=\sum_{k\geq 0}k![x^k](e^x-\tilde P)\),那麼首先考慮\(\tilde Q_i\)的表達式:

\[\tilde Q_i=\sum_{j\geq 0}\frac{1}{j!}\Bigg(1+\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}(-1)^k{j+1\choose k}\Big(1-k\frac{K}{l_i}\Big)^j\Bigg)\Big(\frac{l_i}{L}\Big)^jx^j \]

\[=\sum_{j\geq 0}\frac{1}{j!}\Big(\frac{l_i}{L}\Big)^jx^j+\sum_{j\geq 0}\frac{1}{j!}\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}(-1)^k{j+1\choose k}\Big(\frac{l_i-kK}{L}\Big)^jx^j \]

\[=e^{\frac{l_i}{L}x}+\sum_{j\geq 0}\sum_{k=1}^{\min\{j+1,\lfloor\frac{l_i}{K}\rfloor\}}(-1)^k\frac{j+1}{k!(j+1-k)!}\Big(\frac{l_i-kK}{L}\Big)^jx^j \]

\[=e^{\frac{l_i}{L}x}+\sum_{j\geq 0}\sum_{k=1}^{\min\{j+1,\lfloor\frac{l_i}{K}\rfloor\}}(-1)^k\frac{j+1-k+k}{k!(j+1-k)!}\Big(\frac{l_i-kK}{L}\Big)^jx^j \]

\[=e^{\frac{l_i}{L}x}+\sum_{j\geq 0}\sum_{k=1}^{\min\{j,\lfloor\frac{l_i}{K}\rfloor\}}(-1)^k\frac{1}{k!(j-k)!}\Big(\frac{l_i-kK}{L}\Big)^jx^j+\sum_{j\geq 0}\sum_{k=1}^{\min\{j+1,\lfloor\frac{l_i}{K}\rfloor\}}(-1)^k\frac{1}{(k-1)!(j+1-k)!}\Big(\frac{l_i-kK}{L}\Big)^jx^j \]

\[=e^{\frac{l_i}{L}x}+\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}\frac{(-1)^k}{k!}\sum_{j\geq k}\frac{\Big(\frac{l_i-kK}{L}\Big)^j}{(j-k)!}x^j+\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}\frac{(-1)^k}{(k-1)!}\sum_{j\geq k-1}\frac{\Big(\frac{l_i-kK}{L}\Big)^j}{(j-(k-1))!}x^j \]

\[=e^{\frac{l_i}{L}x}+\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}\frac{(-1)^k\Big(\frac{l_i-kK}{L}\Big)^kx^k}{k!}\sum_{j\geq 0}\frac{\Big(\frac{l_i-kK}{L}\Big)^j}{j!}x^j+\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}\frac{(-1)^k\Big(\frac{l_i-kK}{L}\Big)^{k-1}x^{k-1}}{(k-1)!}\sum_{j\geq 0}\frac{\Big(\frac{l_i-kK}{L}\Big)^j}{j!}x^j \]

\[=e^{\frac{l_i}{L}x}+\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}\frac{(-1)^k\Big(\frac{l_i-kK}{L}\Big)^kx^k}{k!}e^{\Big(\frac{l_i-kK}{L}\Big)x}+\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}\frac{(-1)^k\Big(\frac{l_i-kK}{L}\Big)^{k-1}x^{k-1}}{(k-1)!}e^{\Big(\frac{l_i-kK}{L}\Big)x} \]

\[=e^{\frac{l_i}{L}x}\Bigg(1+\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}\frac{(-1)^k\Big(\frac{l_i-kK}{L}\Big)^k}{k!}x^ke^{-k\frac{K}{L}x}+\sum_{k=1}^{\lfloor\frac{l_i}{K}\rfloor}\frac{(-1)^k\Big(\frac{l_i-kK}{L}\Big)^{k-1}}{(k-1)!}x^{k-1}e^{-k\frac{K}{L}x}\Bigg) \]

括號外的部分全部相乘,即爲\(e^x\),考慮括號內的部分,可以發現相乘之後可以表示爲若干項\(x^{k-j}e^{-k\frac{K}{L}x}\)的線性組合,於是可以利用以\(j,k\)爲下標的二維卷積計算每一項的係數,就得到了\(e^x-\tilde P\)的一個以若干項\(x^ke^{Cx}\)的線性組合表示的表達式。

最後,只需要考慮如何計算\(\sum_{i\geq 0}i![x^i](x^ke^{Cx})\)即可。考慮:

\[\sum_{i\geq 0}i![x^i](x^ke^{Cx})=\sum_{i\geq 0}(i+k)!\frac{C^i}{i!}=k!\sum_{i\geq 0}{{i+k}\choose i}C^i \]

\(F_k=\sum_{i\geq 0}{{i+k}\choose i}C^i\),於是:

\[F_k=\sum_{i\geq 0}{{i+k}\choose i}C^i=\sum_{i\geq 0}\Bigg({i+k-1\choose i-1}+{i+k-1\choose i}\Bigg)C^i \]

\[=\sum_{i\geq 1}{i-1+k\choose i-1}C^i+\sum_{i\geq 0}{i+k-1\choose i}C^i \]

\[=C\cdot F_k+F_{k-1} \]

\(F_0=\frac{1}{1-C}\),於是\(F_k=\frac{1}{(1-C)^{k+1}}\),有\(\sum_{i\geq 0}i![x^i](x^ke^{Cx})=\frac{k!}{(1-C)^{k+1}}\)

利用前文的分析,用分治\(\rm FFT\)計算二維卷積,可以在\(O(nL\log nL)\)的時間內解決問題。最後記得處理邊界條件,如\(K=l_i\)的情況可能要令\(0^0=0\)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章