小孩召开法
主要发布于 洛谷博客。
感谢
PS:我也不知道这比赛叫啥。
本题解由 d2019dy,Tamaki_Iroha 和 disangan233 花费数天时间在省略了亿点细节的原题解上补充而成。
感谢 AChen,EIegia 提供的帮助。
这题是我目前做过的最毒瘤的式子题,希望不会有下一道。
题意
求长为 (n) 的,最长交替子序列的长度为 (k) 的排列个数。 (n leq 10^{18} ,k leq min(10^6 , n))。
做法
令 (a_k(n)) 为答案,有
[a_k(n)=sum_{j=0}^n inom nj sum_{2r+s=k-1} (a_{2r}(j)+a_{2r+1}(j))a_s(n-j)
]
令 (F_k(x)) 为 (a_k(x)) 的 EGF,式子可以化为
[F_k'(x)=sum_{2r+s=k-1}(F_{2r}(x)+F_{2r+1}(x))F_s(x)
]
令 (A(x,t)=sum_{n,kgeq 0} a_k(n)frac {x^n}{n!}t^k),(A_1(x,t)=sum_{kgeq 0}F_{2k}(x)t^{2k}),(A_2(x,t)=sum_{kgeq 0}F_{2k+1}(x)t^{2k+1}),有
[A_1(x,t)=frac 12(A(x,t)+A(x,-t)) qquad A_2(x,t)=frac 12(A(x,t)-A(x,-t))
]
由
[frac {partial A(x,t)}{partial x}=frac {t+1}4(A^2(x,t)+A^2(x,-t)) qquad frac {partial A(x,-t)}{partial x}=frac {t+1}4A(x,t)A(x,-t)
]
可得
[frac {partial A_1}{partial x} = tA_1A_2+A_1^2 qquad frac {partial A_2}{partial x}=tA_1^2+A_1A_2
]
那么有
[frac {partial(A_1^2-A_2^2)}{partial x}=0
]
所以可得
[A_1^2(x,t)-A_2^2(x,t)=1
]
令 (b_k(x)=sum_{jleq k}a_k(x)),(B_k) 为其 EGF,解一下可得
[A(x,t)=(1-t)B(x,t) qquad B(x,t)= frac {frac 2
ho}{1-frac {1-
ho}te^{
ho x}} - frac 1{sqrt{1-t^2}}
]
其中 (
ho=sqrt{1-t^2})。证明如下:
由
[frac {partial A}{partial x} = (tA_1+A_2)(A_1+A_2)=frac 12 (tA+frac tA+A-frac 1A)
]
可得
[egin{aligned}
&frac {partial A}{A((t+1)A+frac {t-1}A)} = frac{partial x}2 = frac {partial B}{(1-t^2)B^2-1} \
&partial(
ho B)(frac 1{
ho B -1}-frac 1{
ho B+1}) =
ho partial x \
&log frac {
ho B-1}{
ho B+1}=
ho x +C(t)
end{aligned}
]
所以可得
[frac {
ho B-1}{
ho B+1} = C(t)e^{
ho x} Rightarrow B =frac {1+C(t)e^{
ho x}}{
ho(1-C(t)e^{
ho x})}
]
其中
[C(t)=frac {frac {
ho}{1-t}-1}{frac {
ho}{1-t}+1}
]
证毕。
考虑一个结论
[b_k(n)=frac 1{2^k-1}sum_{r+2sleq k,requiv k pmod 2} (-2)^s inom {k-s}{frac {k+r}2}inom ns r^n
]
证明如下
[egin{aligned}
B(x,t) &= frac 2{
ho}left(1-frac{1-
ho}te^{
ho x}
ight)^{-1} \
&= frac 2{
ho} sum_rleft(frac{1-
ho}te^{
ho x}
ight)^re^{-r(1-
ho)x} \
&= frac 2{
ho} sum_rleft(frac{1-
ho}te^{
ho x}
ight)^r sum_s frac{(-r(1-
ho)x)^s}{s!} \
&= frac 2{
ho} sum_{r,sgeq 0} left(frac t2
ight)^r frac {(-rt^2frac x2)^s}{s!}e^{rx}left(frac {2-2
ho}{t^2}
ight)^{r+s} \
&= 2sum_{r,sgeq 0} left(frac t2
ight)^r frac {(-rt^2frac x2)^s}{s!} left[sum_linom {r+s+2l}lleft(frac {t^2}4
ight)^l
ight]left[sum_mfrac {(rx)^m}{m!}
ight] \
&= sum_{r,s,l,m}(-1)^s2^{1-r-s-2l}inom {r+s+2l}{r+s+l}inom {s+m}s r^{s+m}t^{r+2s+2l} inom {s+m}s r^{s+m}t^{r+2s+2l}frac {x^{s+m}}{(s+m)!}
end{aligned}
]
令 (n=s+m),(k=r+2s+2l) 即可。
证明的其他部分都是一些基础技巧,主要难点是倒数第二步的
[left(frac {2-2
ho}{t^2}
ight)^n=sum_iinom {n+2i}ileft(frac {t^2}4
ight)^i
]
可以发现原式可以化成
[frac 1{sqrt{1-4x}}left(frac {1-sqrt{1-4x}}{2x}
ight)^m = sum_{i=0}^infty inom {n+2i}i x^i
]
具体可以参考《具体数学》公式 5.72,来自 1838 年一个广义二项式级数的 paper。
这里是来自 EI 的证明:
枚举 (r),接下来的问题就是快速算
[g_k (x) = sum_s(-2)^s inom ns inom {k-s}x
]
可以证明
[g_k(x)=-frac 1x((2n-x)g_k(x-1)+(k-x+2)g_k(x-2)
]
(n=k) 时显然,由 (g_k (x) = g_{k−1}(x − 1) + g_{k−1}(x))归纳即可。
(O(k)) 递推 (g_k),计算快速幂即可,时间复杂度 (O(k log n)) 或 (O(k))。