目录
题目大意:
-
将 1 → n 1\to n 1→n 按顺序入栈,可以在任意“栈非空的时刻”弹出栈顶元素。
-
以这种方法得到的出栈序列为合法的出栈序列. 定义一个出栈序列的权值为“每次有元素入栈时,将全部栈内元素的标号求和”的和.
-
求所有不同的合法出栈序列的 c c c 的和,答案对 1 0 9 + 7 10^9 + 7 109+7 取模
-
1 ≤ n ≤ 5 × 1 0 8 1\le n\le 5\times 10^8 1≤n≤5×108。
Sol.
前置知识 1:卷积
右转oi-wiki,保教包会。 简单来说:多项式 A = ∑ i = 0 ∞ a i x i , B = ∑ i = 0 ∞ b i x i A=\sum\limits_{i=0}^\infty a_ix^i,B=\sum\limits_{i=0}^\infty b_ix^i A=i=0∑∞aixi,B=i=0∑∞bixi
A ∗ B = ∑ k = 0 ∞ ∑ i + j = k A [ i ] B [ j ] x k = ∑ i = 0 ∞ x i ∑ j = 0 i a j b i − j A*B=\sum\limits_{k=0}^{\infty}\sum\limits_{i+j=k}A[i]B[j]x^k=\sum\limits_{i=0}^\infty x^i\sum\limits_{j=0}^ia_jb_{i-j} A∗B=k=0∑∞i+j=k∑A[i]B[j]xk=i=0∑∞xij=0∑iajbi−j
前置知识 2:牛顿二项式定理
右转oi-wiki,保教包会。 简单来说: ( n m ) = n m ‾ m ! \dbinom nm=\dfrac{n^{\underline{m}}}{m!} (mn)=m!nm
x n ‾ = ∏ 0 n − 1 ( x − i ) x^{\underline n}=\prod_0^{n-1}(x-i) xn=∏0n−1(x−i)
准备一大叠草稿纸(一定要够用),再准备一包纸擦汗。准备好了吗?那么我们就开始吧。 哦对了,带够你的耐心,带够你的意志,深吸一口气。一定不要放弃!一定不要放弃!一定不要放弃! 一定不要放弃!
DP:
我们考虑 dp。
f i f_i fi 表示 1 → i 1\to i 1→i 的所有出栈种类数。
g i g_i gi 表示 1 → i 1\to i 1→i 的所有对“元素入栈时的元素个数”求和的权值和。
h i h_i hi 表示 1 → i 1\to i 1→i 的答案。
f 0 = 1 f_0=1 f0=1
要求 h n h_n hn 转移方程: 我们考虑每次栈弹出最后弹出的元素为 j j j,那么有 j − 1 j-1 j−1 个数已经在 j j j 弹入之前取出了,因此问题分为互相独立的两个部分。
f n = ∑ j = 1 n f j − 1 f i − j f_n=\sum\limits_{j=1}^n f_{j-1}f_{i-j} fn=j=1∑nfj−1fi−j ①
g n = ∑ j = 1 n f j − 1 g i − j + g j − 1 f i − j + j × f j − 1 f i − j g_n=\sum\limits_{j=1}^n f_{j-1}g_{i-j}+g_{j-1}f_{i-j}+j\times f_{j-1}f_{i-j} gn=j=1∑nfj−1gi−j+gj−1fi−j+j×fj−1fi−j ②
h n = ∑ j = 1 n f i − j × ( h j − 1 + g j − 1 × j ) + f j − 1 × ( h i − j + g i − j + f i − j × j ) h_n=\sum\limits_{j=1}^n f_{i-j}\times (h_{j-1}+g_{j-1}\times j)+f_{j-1}\times (h_{i-j}+g_{i-j}+f_{i-j}\times j) hn=j=1∑nfi−j×(hj−1+gj−1×j)+fj−1×(hi−j+gi−j+fi−j×j) ③
f n = ∑ i = 0 n − 1 f i ∗ f j f_n=\sum\limits_{i=0}^{n-1}f_i*f_j fn=i=0∑n−1fi∗fj
g n = ∑ i = 0 n − 1 f i ∗ f j ∗ ( i + 1 ) + f j ∗ g i + f i ∗ g j g_n=\sum\limits_{i=0}^{n-1}f_i*f_j*(i+1)+f_j*g_i+f_i*g_j gn=i=0∑n−1fi∗fj∗(i+1)+fj∗gi+fi∗gj
h n = ∑ i = 0 n − 1 f i ∗ f j ∗ ( i + 1 ) + f j ∗ ( h i + g i ) + f i ∗ ( h j + ( i + 1 ) ∗ g j ) h_n=\sum\limits_{i=0}^{n-1}f_i*f_j*(i+1)+f_j*(h_i+g_i)+f_i*(h_j+(i+1)*g_j) hn=i=0∑n−1fi∗fj∗(i+1)+fj∗(hi+gi)+fi∗(hj+(i+1)∗gj)
对于 ①:每次 i + 1 i+1 i+1 把他们分为 i , j i,j i,j 两个部分,因为他们相互独立,所以互不影响,答案即为他们相乘的和。
对于 ②:我们考虑三个部分 A + B + C A+B+C A+B+C,其中 B B B 表示 i + 1 i+1 i+1:
-
对于 A A A 的贡献:由于 A , C A,C A,C 独立, A A A 的贡献为 g i × f j g_{i}\times f_{j} gi×fj
-
对于 C C C 的贡献:由于 A , C A,C A,C 独立, C C C 的贡献为 g j × f i g_{j}\times f_{i} gj×fi
-
对于 B B B 的贡献:由于在 i + 1 i+1 i+1 插入之前所有元素已经弹出(不然不成立),无论如何都会贡献 i + 1 i+1 i+1(一共有 i+1 个元素),方案数为 f i × f j f_{i}\times f{j} fi×fj,那么答案为 ( i + 1 ) × f i × f j (i+1)\times f_{i}\times f_{j} (i+1)×fi×fj
对于 ③:我们考虑三个部分 A + B + C A+B+C A+B+C,其中 B B B 表示 i + 1 i+1 i+1:
-
对于 A A A 的贡献:由于 A , C A,C A,C 独立,那么 A A A 的贡献为 f j × h i f_{j}\times h_{i} fj×hi
-
对于 C C C 的贡献:由于 A , C A,C A,C 独立,那么 C C C 的贡献为 f i × h j + g i × ( i + 1 ) × f j f_{i}\times h_{j}+g_{i}\times (i+1)\times f_{j} fi×hj+gi×(i+1)×fj,后面那一项是因为每个元素都加了 j + 1 j+1 j+1。
-
对于 B B B 的贡献: ( i + 1 ) × f i × f j (i+1)\times f_{i}\times f_{j} (i+1)×fi×fj
-
- 对于 A B AB AB 的贡献:显然没有贡献。
-
对于 B C BC BC 的贡献:显然是 f j − 1 × g i − j f_{j-1}\times g_{i-j} fj−1×gi−j
生成函数求解:
F:
F ( x ) = ∑ i = 0 F [ i ] x i F(x)=\sum\limits_{i=0} F[i]x^i F(x)=i=0∑F[i]xi
F ( x ) = 1 + ∑ i = 1 F [ i ] x i F(x)=1+\sum\limits_{i=1} F[i]x^i F(x)=1+i=1∑F[i]xi
F ( x ) = 1 + ∑ i = 1 ∑ j = 0 i − 1 F [ j ] F [ i − j − 1 ] x i F(x)=1+\sum\limits_{i=1}\sum\limits_{j=0}^{i-1}F[j]F[i-j-1]x^i F(x)=1+i=1∑j=0∑i−1F[j]F[i−j−1]xi
F ( x ) = 1 + ∑ k = 0 ∑ i + j = k F [ i ] F [ j ] x k + 1 F(x)=1+\sum\limits_{k=0}\sum\limits_{i+j=k}F[i]F[j]x^{k+1} F(x)=1+k=0∑i+j=k∑F[i]F[j]xk+1
F ( x ) = 1 + x × F ( x ) 2 F(x)=1+x\times F(x)^2 F(x)=1+x×F(x)2
F ( x ) = 1 − 1 − 4 x 2 x F(x)=\dfrac{1-\sqrt {1-4x}}{2x} F(x)=2x1−1−4x
G:
根据上面的套路(把 0 ( G [ 0 ] = 0 G[0]=0 G[0]=0) 拿出来特殊考虑,其他的直接递归下去),可以得到:
( 1 − 2 x F ( x ) ) G ( x ) = ( i + 1 ) F ( x ) 2 x (1-2xF(x))G(x)=(i+1)F(x)^2x (1−2xF(x))G(x)=(i+1)F(x)2x
好的我们看到这个 ( i + 1 ) ∗ F ( x ) (i+1)*F(x) (i+1)∗F(x) 的时候已经懵逼了,那么先给个结论(之后证明)
( i + 1 ) ∗ F ( x ) = 1 − 4 x 1 − 4 x (i+1)*F(x)=\frac{\sqrt{1-4x}}{1-4x} (i+1)∗F(x)=1−4x1−4x
(这里 ( i + 1 ) ∗ F ( x ) = ∑ i = 0 ( i + 1 ) F [ i ] x i (i+1)*F(x)=\sum\limits_{i=0}(i+1)F[i]x^i (i+1)∗F(x)=i=0∑(i+1)F[i]xi)
那么原式可以化简为: ( 1 − 2 x F ( x ) ) G ( x ) = F ( x ) x 1 − 4 x (1-2xF(x))G(x)=\dfrac{F(x)x}{\sqrt {1-4x}} (1−2xF(x))G(x)=1−4xF(x)x
1 − 2 x F ( x ) = 1 − 2 x 1 − 1 − 4 x 2 x = 1 − 4 x 1-2xF(x)=1-2x\dfrac{1-\sqrt {1-4x}}{2x}=\sqrt {1-4x} 1−2xF(x)=1−2x2x1−1−4x=1−4x
G ( x ) = F ( x ) x 1 − 4 x = 1 − 1 − 4 x 2 − 8 x G(x)=\dfrac{F(x)x}{1-4x}=\dfrac{1-\sqrt {1-4x}}{2-8x} G(x)=1−4xF(x)x=2−8x1−1−4x
H:
根据上面的套路(把 0 ( H [ 0 ] = 0 H[0]=0 H[0]=0) 拿出来特殊考虑,其他的直接递归下去),可以得到:
H ( x ) = ( G ( x ) + F ( x ) ) ∗ ( j + 1 ) ∗ F ( x ) + F ( x ) ∗ G ( x ) 1 − 2 x F ( x ) x H(x)=\dfrac{(G(x)+F(x))*(j+1)*F(x)+F(x)*G(x)}{1-2xF(x)}x H(x)=1−2xF(x)(G(x)+F(x))∗(j+1)∗F(x)+F(x)∗G(x)x
H ( x ) = G ( x ) + F ( x ) 1 − 4 x + F ( x ) ∗ G ( x ) 1 − 4 x x H(x)=\dfrac{\dfrac{G(x)+F(x)}{\sqrt{1-4x}}+F(x)*G(x)}{\sqrt{1-4x}}x H(x)=1−4x1−4xG(x)+F(x)+F(x)∗G(x)x
H ( x ) = ( F ( x ) x 1 − 4 x + F ( x ) ) × 1 1 − 4 x + F ( x ) 2 x 1 − 4 x 1 − 4 x x H(x)=\dfrac{(\dfrac{F(x)x}{1-4x}+F(x))\times \dfrac{1}{\sqrt{1-4x}}+\dfrac{F(x)^2x}{1-4x}}{\sqrt{1-4x}}x H(x)=1−4x(1−4xF(x)x+F(x))×1−4x1+1−4xF(x)2xx
H ( x ) = F ( x ) × 1 − 3 x 1 − 4 x × 1 1 − 4 x + F ( x ) 2 × x 1 − 4 x 1 − 4 x x H(x)=\dfrac{F(x)\times\dfrac{1-3x}{1-4x}\times \dfrac{1}{\sqrt{1-4x}}+F(x)^2\times \dfrac{x}{1-4x}}{\sqrt{1-4x}}x H(x)=1−4xF(x)×1−4x1−3x×1−4x1+F(x)2×1−4xxx
H ( x ) = 1 − 1 − 4 x 2 x × 1 − 3 x 1 − 4 x × 1 1 − 4 x + 1 − 2 x − 1 − 4 x 2 x 2 × x 1 − 4 x 1 − 4 x x H(x)=\dfrac{\dfrac{1-\sqrt {1-4x}}{2x}\times\dfrac{1-3x}{1-4x}\times \dfrac{1}{\sqrt{1-4x}}+\dfrac{1-2x-\sqrt{1-4x}}{2x^2}\times \dfrac{x}{1-4x}}{\sqrt{1-4x}}x H(x)=1−4x2x1−1−4x×1−4x1−3x×1−4x1+2x21−2x−1−4x×1−4xxx
H ( x ) = ( 1 − 1 − 4 x ) ( 1 − 3 x ) 2 x 1 − 4 x ( 1 − 4 x ) + ( 1 − 2 x − 1 − 4 x ) 1 − 4 x 2 x 1 − 4 x ( 1 − 4 x ) 1 − 4 x x H(x)=\dfrac{\dfrac{(1-\sqrt{1-4x})(1-3x)}{2x\sqrt{1-4x}(1-4x)}+\dfrac{(1-2x-\sqrt {1-4x})\sqrt{1-4x}}{2x\sqrt{1-4x}(1-4x)}}{\sqrt{1-4x}}x H(x)=1−4x2x1−4x(1−4x)(1−1−4x)(1−3x)+2x1−4x(1−4x)(1−2x−1−4x)1−4xx
H ( x ) = ( 1 − 1 − 4 x ) ( 1 − 3 x ) + ( 1 − 2 x − 1 − 4 x ) 1 − 4 x 2 ( 1 − 4 x ) 2 H(x)=\dfrac{(1-\sqrt{1-4x})(1-3x)+(1-2x-\sqrt{1-4x})\sqrt{1-4x}}{2(1-4x)^2} H(x)=2(1−4x)2(1−1−4x)(1−3x)+(1−2x−1−4x)1−4x
H ( x ) = 1 + 1 − 4 x 2 ( 1 − 4 x ) 2 x H(x)=\dfrac{1+\sqrt{1-4x}}{2(1-4x)^2}x H(x)=2(1−4x)21+1−4xx
H ( x ) = x 2 ( 1 − 4 x ) 2 + x 2 ( 1 − 4 x ) 3 2 H(x)=\dfrac{x}{2(1-4x)^2}+\dfrac{x}{2(1-4x)^\frac{3}{2}} H(x)=2(1−4x)2x+2(1−4x)23x
令 A ( x ) = x 2 ( 1 − 4 x ) 2 A(x)=\dfrac{x}{2(1-4x)^2} A(x)=2(1−4x)2x,
B ( x ) = x 2 ( 1 − 4 x ) 3 2 B(x)=\dfrac{x}{2(1-4x)^\frac{3}{2}} B(x)=2(1−4x)23x,
则 H ( x ) = A ( x ) + B ( x ) H(x)=A(x)+B(x) H(x)=A(x)+B(x)。
A:
令 s = 1 ( 1 − 4 x ) 2 s=\dfrac{1}{(1-4x)^2} s=(1−4x)21
s = ( 1 − 4 x ) − 2 s=(1-4x)^{-2} s=(1−4x)−2
s = ∑ n ≥ 0 ∞ ( − 2 n ) ( − 4 x ) n s=\sum\limits_{n\ge 0}^\infty \dbinom{-2}{n}(-4x)^n s=n≥0∑∞(n−2)(−4x)n(牛顿二项式定理)
下面是广义二项式系数的常用化简方式
令 t = ( − 2 n ) t=\dbinom{-2}n t=(n−2)
t = ( − 2 ) n ‾ n ! t=\dfrac{(-2)^{\underline n}}{n!} t=n!(−2)n(牛顿二项式定理)
t = ( − 2 ) × ( − 3 ) × ( − 4 ) . . . ( − 2 − n + 1 ) n ! t=\dfrac{(-2)\times (-3)\times (-4)...(-2-n+1)}{n!} t=n!(−2)×(−3)×(−4)...(−2−n+1)(下降幂定义)
t = ( n + 1 ) ! ( − 1 ) n n ! t=\dfrac{(n+1)!(-1)^n}{n!} t=n!(n+1)!(−1)n
t = ( n + 1 ) ( − 1 ) n t=(n+1)(-1)^n t=(n+1)(−1)n
回带: s = ∑ n ≥ 0 ∞ ( n + 1 ) ( − 1 ) n ( − 1 ) n 4 n x n s=\sum\limits_{n\ge 0}^\infty (n+1)(-1)^n(-1)^n4^nx^n s=n≥0∑∞(n+1)(−1)n(−1)n4nxn
s = ∑ n ≥ 0 ∞ ( n + 1 ) 4 n x n s=\sum\limits_{n\ge 0}^\infty (n+1)4^nx^n s=n≥0∑∞(n+1)4nxn
回带: A ( x ) = x 2 s A(x)=\dfrac{x}{2}s A(x)=2xs
A ( x ) = ∑ n ≥ 0 ∞ ( n + 1 ) 4 n x n + 1 2 A(x)=\dfrac{\sum\limits_{n\ge 0}^\infty (n+1)4^nx^{n+1}}{2} A(x)=2n≥0∑∞(n+1)4nxn+1
A ( x ) = 1 2 ∑ n ≥ 0 ∞ n 4 n − 1 x n A(x)=\dfrac{1}{2}\sum\limits_{n\ge 0}^\infty n4^{n-1}x^{n} A(x)=21n≥0∑∞n4n−1xn (如果直接换条件为 n ≥ 1 n\ge 1 n≥1,但鉴于n=0时并不会影响答案,就直接这样了)
B: 令 s = 1 ( 1 − 4 x ) 3 2 s=\dfrac{1}{(1-4x)^\frac{3}{2}} s=(1−4x)231
s = ( 1 − 4 x ) − 3 2 s=(1-4x)^{-\frac32} s=(1−4x)−23
s = ∑ n ≥ 0 ∞ ( − 3 2 n ) ( − 4 x ) n s=\sum\limits_{n\ge 0}^\infty \dbinom{-\frac 32}{n}(-4x)^n s=n≥0∑∞(n−23)(−4x)n(牛顿二项式定理)
令 t = ( − 3 2 n ) t=\dbinom {-\frac32}n t=(n−23)
t = ( − 3 2 ) n ‾ n ! t=\dfrac{(-\frac 32)^{\underline n}}{n!} t=n!(−23)n(牛顿二项式定理)
t = ( − 3 2 ) ( − 5 2 ) ( − 7 2 ) . . . ( − 3 2 − n + 1 ) n ! t=\dfrac{(-\frac 32)(-\frac 52)(-\frac 72)...(-\frac 32-n+1)}{n!} t=n!(−23)(−25)(−27)...(−23−n+1)(下降幂定义)
t = ( − 1 ) n ( 2 n + 1 ) ! ! 2 n n ! t=\dfrac{(-1)^n(2n+1)!!}{2^nn!} t=2nn!(−1)n(2n+1)!!(双阶乘不会可以百度)
t = ( − 1 ) n ( 2 n + 2 ) ! 2 n n ! ( 2 n + 2 ) ! ! t=\dfrac{(-1)^n(2n+2)!}{2^nn!(2n+2)!!} t=2nn!(2n+2)!!(−1)n(2n+2)!(用双阶乘定义解释)
t = ( − 1 ) n ( 2 n + 2 ) ! 2 2 n + 1 n ! ( n + 1 ) ! t=\dfrac{(-1)^n(2n+2)!}{2^{2n+1}n!(n+1)!} t=22n+1n!(n+1)!(−1)n(2n+2)!(双阶乘每个拆一个 2)
t = ( − 1 ) n ( 2 n + 2 ) 2 2 n + 1 ( 2 n + 1 n ) t=\dfrac{(-1)^n(2n+2)}{2^{2n+1}}\dbinom{2n+1}n t=22n+1(−1)n(2n+2)(n2n+1)(上式像不像组合数?拆出来看看)
t = ( − 1 ) n ( n + 1 ) 4 n ( 2 n + 1 n ) t=\dfrac{(-1)^n(n+1)}{4^n}\dbinom{2n+1}n t=4n(−1)n(n+1)(n2n+1)
回带: s = ∑ n ≥ 0 ∞ ( − 1 ) n ( n + 1 ) 4 n ( 2 n + 1 n ) ( − 4 x ) n s=\sum\limits_{n\ge 0}^\infty \dfrac{(-1)^n(n+1)}{4^n}\dbinom{2n+1}n(-4x)^n s=n≥0∑∞4n(−1)n(n+1)(n2n+1)(−4x)n
s = ∑ n ≥ 0 ∞ ( − 1 ) n ( n + 1 ) 4 n ( 2 n + 1 n ) ( − 1 ) n 4 n x n s=\sum\limits_{n\ge 0}^\infty \dfrac{(-1)^n(n+1)}{4^n}\dbinom{2n+1}n(-1)^n4^nx^n s=n≥0∑∞4n(−1)n(n+1)(n2n+1)(−1)n4nxn
s = ∑ n ≥ 0 ∞ ( n + 1 ) ( 2 n + 1 n ) x n s=\sum\limits_{n\ge 0}^\infty (n+1)\dbinom{2n+1}nx^n s=n≥0∑∞(n+1)(n2n+1)xn
回带: B ( x ) = x 2 s B(x)=\dfrac{x}{2}s B(x)=2xs
B ( x ) = x 2 ∑ n ≥ 0 ∞ ( n + 1 ) ( 2 n + 1 n ) x n B(x)=\dfrac{x}{2}\sum\limits_{n\ge 0}^\infty (n+1)\dbinom{2n+1}nx^n B(x)=2xn≥0∑∞(n+1)(n2n+1)xn
B ( x ) = 1 2 ∑ n ≥ 0 ∞ ( n + 1 ) ( 2 n + 1 n ) x n + 1 B(x)=\dfrac{1}{2}\sum\limits_{n\ge 0}^\infty (n+1)\dbinom{2n+1}nx^{n+1} B(x)=21n≥0∑∞(n+1)(n2n+1)xn+1
B ( x ) = 1 2 ∑ n ≥ 0 ∞ n ( 2 n − 1 n − 1 ) x n B(x)=\dfrac{1}{2}\sum\limits_{n\ge 0}^\infty n\dbinom{2n-1}{n-1}x^n B(x)=21n≥0∑∞n(n−12n−1)xn
A ( x ) = 1 2 ∑ n ≥ 0 ∞ n 4 n − 1 x n A(x)=\dfrac{1}{2}\sum\limits_{n\ge 0}^\infty n4^{n-1}x^{n} A(x)=21n≥0∑∞n4n−1xn
回带: H ( x ) = A ( x ) + B ( x ) = ∑ n ≥ 0 ∞ n 2 ( 4 n − 1 + ( 2 n − 1 n − 1 ) ) x n H(x)=A(x)+B(x)=\sum\limits_{n\ge 0}^\infty \dfrac{n}{2}(4^{n-1}+\dbinom{2n-1}{n-1})x^n H(x)=A(x)+B(x)=n≥0∑∞2n(4n−1+(n−12n−1))xn
H [ n ] = n 2 ( 4 n − 1 + ( 2 n − 1 n − 1 ) ) H[n]=\dfrac{n}{2}(4^{n-1}+\dbinom{2n-1}{n-1}) H[n]=2n(4n−1+(n−12n−1))
证毕!
结语:
感谢你看到这里。这应该说明你已经掌握了生成函数基础了! 对于上文有一个说最后再证明的,我觉得你们现在的基础应该也不需要我证明了! 自行二项式展开即可。
因为卡特兰数是 1 − 1 − 4 x 2 x = ( 2 n n ) n + 1 \dfrac{1-\sqrt{1-4x}}{2x}=\dfrac{\dbinom{2n}n}{n+1} 2x1−1−4x=n+1(n2n)。
因此能想到用 1 − 4 x \sqrt{1-4x} 1−4x 的幂构造。
写到这里很不容易了!如果你觉得我写的还不错的话,请点赞评论支持我哦!
我是城阙,我们下次再见。