F2 重做

    科技2026-01-24  14

    CF1349F2

    从小到大,从后往前放,即写出一个放东西的顺序序列 { p i } \{p_i\} {pi},将其划分成若干段极长的下降序列,每一段从小到大对应一个数字。假设要求出 t t t 的答案,我们可以枚举每个处于第 t t t 个下降序列的位置并统计它的贡献 ∑ i ways i , t ( n i ) ( n − i ) ! \sum_{i}\text{ways}_{i,t}\binom{n}{i}(n-i)! iwaysi,t(in)(ni)! 其中 ways i , j \text{ways}_{i,j} waysi,j 表示长为 i i i 的排列,划分成 j j j 个极长下降段的方案数 这显然是可以容斥的 ways i , j = ∑ k ≥ j { i i − k } ( i − k ) ! ( − 1 ) k − j ( k j ) \text{ways}_{i,j}=\sum_{k\ge j}\begin{Bmatrix}i\\i-k\end{Bmatrix}(i-k)!(-1)^{k-j}\binom{k}{j} waysi,j=kj{iik}(ik)!(1)kj(jk) 即对每一个 t t t 算出 n ! ∑ i ≤ n ∑ k [ z i ] ( e z − 1 ) i − k ( − 1 ) t − k ( t k ) = n ! ∑ k ( − 1 ) t − k ( t k ) ∑ i ≤ n [ z i ] ( e z − 1 ) i − k n!\sum_{i\le n}\sum_{k}[z^i](e^z-1)^{i-k}(-1)^{t-k}\binom{t}{k}\\=n!\sum_{k}(-1)^{t-k}\binom{t}{k}\sum_{i\le n}[z^i](e^z-1)^{i-k} n!ink[zi](ez1)ik(1)tk(kt)=n!k(1)tk(kt)in[zi](ez1)ik 对每个 k k k 求出 ∑ k ≤ i ≤ n [ z i ] ( e z − 1 ) i − k = ∑ k ≤ i ≤ n [ z k ] ( e z − 1 z ) i − k \sum_{k\le i\le n}[z^i](e^z-1)^{i-k}\\=\sum_{k\le i\le n}[z^k](\frac{e^z-1}{z})^{i-k} kin[zi](ez1)ik=kin[zk](zez1)ik f = e z − 1 z , g = e z − 1 f=\frac{e^z-1}{z},g=e^z-1 f=zez1,g=ez1 即求 [ z k ] f n − k + 1 − 1 f − 1 = [ z n + 1 ] g n − k + 1 − 1 f − 1 [z^k]\frac{f^{n-k+1}-1}{f-1}=[z^{n+1}]\frac{g^{n-k+1}-1}{f-1} [zk]f1fnk+11=[zn+1]f1gnk+11 一个技巧是,若要对每个 k k k 求出 [ z n ] F ( z ) G ( z ) k [z^n]F(z)G(z)^k [zn]F(z)G(z)k 我们写成 [ z n u k ] ∑ i F ( z ) ( u G ( z ) ) i = F ( z ) 1 − u G ( z ) [z^nu^k]\sum_{i}F(z)(uG(z))^i=\frac{F(z)}{1-uG(z)} [znuk]iF(z)(uG(z))i=1uG(z)F(z) 然后进行拉格朗日反演

    [ z n u k ] F ( z ) 1 − u G ( z ) = [ z n − 1 u k ] 1 n ( F ( G − 1 ( z ) ) 1 − u z ) ′ ( z G ( z ) ) n = [ z n − 1 u k ] 1 n ( u F ( G − 1 ( z ) ) ( 1 − u z ) 2 + F ( G − 1 ( z ) ) ′ 1 − u z ) ( z G ( z ) ) n [z^nu^k]\frac{F(z)}{1-uG(z)}=[z^{n-1}u^k]\frac{1}{n}(\frac{F(G^{-1}(z))}{1-uz})'(\frac{z}{G(z)})^n\\=[z^{n-1}u^k]\frac{1}{n}(\frac{uF(G^{-1}(z))}{(1-uz)^2}+\frac{F(G^{-1}(z))'}{1-uz})(\frac{z}{G(z)})^n [znuk]1uG(z)F(z)=[zn1uk]n1(1uzF(G1(z)))(G(z)z)n=[zn1uk]n1((1uz)2uF(G1(z))+1uzF(G1(z)))(G(z)z)n 套用到这道题上就可以了

    Processed: 0.017, SQL: 9