闲话
今天闲话的内容其实已经在前面的闲话里预告了(
下面把 YDRG006G 称作 (?) 题。(这也是内部通称)
6.18:实现了 (?) 题的 std
7.15:确定 (?) 题会出现在熨斗月赛
这题还挺简单的不是吗(
至少场上有个组合意义大神(handle:shijiuwan)推出了只用组合数的式子:
\[\left(\dbinom{2n}n-\dbinom{2n}{n+1}\right)\dbinom nk+\sum_{x=1}^n\sum_{y=0}^{x-1}\sum_{i=1}^{\min(k,x)}\dbinom{x-1}{i-1}\dbinom{n-y}{k-i}\left(\dbinom{x+y-1}{x-1}-\dbinom{x+y-1}x\right)\left(\dbinom{2n-x-y}{n-y}-\dbinom{2n-x-y}{n-y+1}\right)
\]
呃呃。有没有数学大神帮我看看这个还有救吗(
推歌:七月狭缝 by 负二价- feat. 言和
仙品 /qdqd
放下成箱的行李
在六月常驻的雨
捡起泛黄的信笺
我梦见
物质 / 是脉搏的化石
生命 / 是传承的歌谣
祛魅:云斗新比赛的括号序列题怎么做?
本题来自我和 jijidawang。我只把我的部分放在下面,想要全部题解的可以去找 jjdw 要 pdf。
合法括号序列的定义:
- 空括号序列是合法括号序列;
- 若
A
是合法括号序列,则 (A)
也是合法括号序列;
- 若
A
,B
都是合法括号序列,则 AB
也是合法括号序列;
- 除此之外的所有括号序列均不是合法括号序列。
(?) 题
一个字符集为 \(\{\)(
, ?
, )
\(\}\) 的序列是好的,当且仅当存在一种方案,使得把每个 ?
替换为 (
或 )
后得到的序列是合法括号序列。
现在给定 \(n\),你需要对每个 \(1\le k \le n\) 计数长度为 \(2n\),恰包含 \(k\) 个 ?
的好序列。答案对 \(10^9 + 3579\)(一个质数,非 ntt 模数)取模。
\(1\le n\le 10^7\),时间限制 \(10s\)。
常数真的很大(
specify 不是我做的,我只会 analyze。
jjdw 声称,通过 [数据删除] 我们可以知道答案即为
\[[s^kt^{2n}] \frac{\left(1-\sqrt{1-4(1+s)t^2}\right)\left(1-\sqrt{1-4(1+s)t^2}-4(1+s)t^2\right)}{2(1+s)^2t^2\left(1-\sqrt{1-4(1+s)t^2}-2(2+s)t^2\right)}
\]
你相信这个式子可以 \(O(n)\) 求一行吗?
可能并不相信!但是接下来你会慢慢相信我的 😉
注意到二叉树方程的形式,定向整理得
\[[s^kt^{2n}] \frac{\dfrac{1-\sqrt{1-4(1+s)t^2}}{2(1+s)t^2} \left(\dfrac{1-\sqrt{1-4(1+s)t^2}}{2(1+s)t^2} - 2\right)}{(1+s)\left(\dfrac{1-\sqrt{1-4(1+s)t^2}}{2(1+s)t^2}-\dfrac{2+s}{1+s}\right)}
\]
令 \(H(s, t^2) = \dfrac{1-\sqrt{1-4(1+s)t^2}}{2(1+s)t^2} - 1\),其满足二叉树方程 \(H = (1+s)t(H+1)^2\)。对 \(t\) 维,原式为复合的形式。根据拉格朗日反演,整理得
\[\begin{aligned}
\\ = \ & [t^{2n}] \frac{H^2(s, t^2) - 1}{(1+s)H(s,t^2)-1}
\\ = \ & [t^{n}] \frac{H^2(s, t) - 1}{(1+s)H(s,t)-1}
\\ = \ & \frac{1}{n} [t^{n - 1}] \left(\frac{t^2 - 1}{(1+s)t-1}\right)' \left(\frac{t}{\frac{t}{(1+s)(1+t)^2}}\right)^n
\\ = \ & \frac{1}{n} [t^{n - 1}] \frac{(1+s)^n(1+t)^{2n}\left(s(t^2+1)+(t-1)^2\right)}{((1+s)t-1)^2}
\end{aligned}\]
随后 \(1/n\) 外的部分即
\[\begin{aligned}&[s^kt^{n-1}]\frac{(1+s)^n(1+t)^{2n}\left(s(t^2+1)+(t-1)^2\right)}{((1+s)t-1)^2}\\=&[s^k](1+s)^n[t^{n-1}]((1+s)t^2-2t+(1+s))\dfrac{(1+t)^{2n}}{(1-(1+s)t)^2}\\=&[s^k](1+s)^n\left(\sum_{i=0}^{n-3}\binom{2n}i(n-i-2)(1+s)^{n-i-2}-2\sum_{i=0}^{n-2}\binom{2n}i(n-i-1)(1+s)^{n-i-2}+\sum_{i=0}^{n-1}\binom{2n}i(n-i)(1+s)^{n-i}\right)\\=&\sum_{i=0}^{n-3}\binom{2n}i\binom{2n-2-i}k(n-i-2)-2\sum_{i=0}^{n-2}\binom{2n}i\binom{2n-2-i}k(n-i-1)+\sum_{i=0}^{n-1}\binom{2n}i\binom{2n-i}k(n-i)\end{aligned}
\]
到这一步我们便可自然地得到一种 \(O(n)\) 计算单点的方法。然而使用此方法对每个 \(k\) 求出答案是困难的,处理不太封闭的和式总难以应用直觉获得递推或进行简化。
因此回到 gf:
\[[s^k](1+s)^n\left(\sum_{i=0}^{n-3}\binom{2n}i(n-i-2)(1+s)^{n-i-2}-2\sum_{i=0}^{n-2}\binom{2n}i(n-i-1)(1+s)^{n-i-2}+\sum_{i=0}^{n-1}\binom{2n}i(n-i)(1+s)^{n-i}\right)
\]
可以看出复合 \(s + 1\) 的部分。经过一些推导知道这就是
\[[s^k]\left(\binom{2n}{n+3}{}_2F_1\left(\left.\begin{matrix}2,3-n\\n+4\end{matrix}\right\rvert-s\right)s^{n+1} + \binom{2n}{n+2}{}_2F_1\left(\left.\begin{matrix}2,2-n\\n+3\end{matrix}\right\rvert-s\right)s^n + \binom{2n}{n+1}{}_2F_1\left(\left.\begin{matrix}2,1-n\\n+2\end{matrix}\right\rvert-s\right)s^{n+1}\right)\circ(1+s)
\]
这自然是 d-finite 的。确定 \(n\) 后可以 \(O(n)\) 对每个 \(k\) 求出答案,随后回答询问即可。使用 ode 自动机,总时间复杂度 \(O(n)\)。
我用 ode 自动机找出来的递推式需要前五项作为初值,所以 std 需要用五次上面的线性求单点,然后线性地递推出每一项。代码不放了,没有实现难度。
能不能再给力一点啊?常数实在太大了!