2022 第一轮省队集训 Day3
100+35+50。
T1
有线性做法。
T2
多项式做法完全听不懂。好像有 dp 做法。
T3
拉格朗日反演
不会。
q-模拟
指的是在原来的理论里引入一个 \(q\),使得 \(q\to 1\) 时与原理论相同。
定义 q-整数 \([k]_q=\frac{1-q^k}{1-q}\),这样 \(\lim_{q\to 1} [k]_q=k\)。所以 \([k]!_q=\frac{(1-q^k)(1-q^{k-1})\cdots(1-q)}{(1-q)^k}\)。
q-二项式定理
高妙的扰动方法。
我们设
扰动:
那么
设 \(f_i(q)\) 为 \([z^i]F(q,z)\),因为
提取 \((1)\) 左右两边的 \([z^i]\) 得 \(q^if_i(q)+q^{i-1}f_{i-1}(q)=f_i(q)+q^nf_{i-1}(q)\)。化简得:
根据这个可以归纳得:
提出若干 \(q\) 的次方:
因为 \(f_0(q)=F(q,0)=1\),所以 \(f_0(q)\) 可以去掉。
考虑在 \((2)\) 中硬凑 q-阶乘 出来,得到
其中 q-二项式系数
于是得到了 q-二项式定理:
还有负指数的形式,不想写了。
Jacobi 三重积
证明略。
推论是五边形数定理:
可以发现划分数的 OGF 就是上面那玩意的倒数。
逆序对
长为 \(n\) 的排列的逆序对数量的 OGF 是 \(F_n(q)=[n]!_q=\frac{(q^n-1)\cdots(q-1)}{(q-1)^n}\)。
考虑 \(G_n(q)=F_n(q)\bmod q^{k+1}\) 如何计算,也就是 \([n]!_q\) 截取前 \(k\) 项。
做法 1
假如 \(n\ge k\),此时五边形数定理的左边就是 \(G_n(q)\)。但右边只有 \(O(\sqrt{k})\) 项,将它们与 \((q-1)^{-k}\) 卷积起来即可。\(O(k\sqrt{k})\)。
做法 2
感谢杜爷的指导!!!这里有高妙的技巧。
考虑 q-二项式定理 的一个奇怪用法:
当我们从 \(\binom{n}{i}_q (1-q)^{-n}\) 推到 \(\binom{n}{i+1}_q (1-q)^{-n}\) 时,会乘上
因为只需要保留 \(q^0,q^1,\dots,q^k\) 项,所以分子可以 \(O(k)\) 暴力乘。
考虑分母怎么做:实际上是已知多项式 \(A(x)\) 和一个正整数 \(m\),要求出 \(B(x)=\frac{A(x)}{1-x^m}\)。将分母移过去,\((1-x^m)B(x)=A(x)\)。提取两边的系数,
\([x^0]B(x),[x^1]B(x),\dots,[x^{m-1}]B(x)\) 都是零,用广义二项式定理展开 \((1-x^m)^{-1}\) 就可以证明这点。所以直接递推即可,单次是 \(O(k)\) 的。而我们只需要递推 \(O(\sqrt{k})\) 次(因为 \((3)\) 的右边的 \(q\) 的次数),所以总的是 \(O(k\sqrt{k})\)。
拆分数
一种做法是五边形数定理。
有个东西叫做 Ferrers diagram,可惜我没听懂。
这里还有两个例子。
快速 q-阶乘
完全没听懂。