2024.12.30 闲话
\(q\)-二项式定理:\(\displaystyle\prod_{i=0}^{n-1}(1+q^iz)=\sum_{i=0}^nq^{i(i-1)/2}\dbinom ni_qz^i\) .
\(q\)-Pochhammer \(\displaystyle(a:q)_n=\prod_{i=0}^{n-1}(1-aq^i)\) .
对比可以发现 \(q\)-Pochhammer 和 \(q\)-二项式定理明显有着千丝万缕的联系(
那么可以这样写:
K 逆序对排列计数
给定 \(n,k\),计数有 \(k\) 个逆序对的长度为 \(n\) 的排列 .
无非就是要计算:
可以考虑计算 \(\displaystyle\prod_{i=1}^n(1-z^i)\) 然后卷 \(\dfrac1{(1-z)^n}\) .
发现一个问题:
可以递推出前 \(\sqrt k\) 项截断在 \(z^k\) 以下的系数,总复杂度 \(O(k\sqrt k)\) .
\(q\)-Pochhammer
给定 \(a,q,n\),计算 \((a:q)_n\bmod 998244353\) .
\(q\) 在模 \(998244353\) 意义下不等于 \(1\) .
由于某些原因可能需要先特判 \(q\bmod998244353=0\) 或 \(a\bmod998244353=0\) .
根据快速阶乘算法的经验,令块长为 \(B\),只需计算:
在 \(a,a\cdot q^B,a\cdot q^{2B},\cdots\) 处的点值 .
然而 \(f\) 的系数可以通过 \(q\)-二项式定理 \(O(B)\) 递推得到(参考上一个题目),接下来可以使用 CZT 来求点值 .
平衡一下最后时间复杂度为 \(O(\sqrt n\log n)\)(然而这里直接 ln-exp 求 \(f\) 也是一样快的).
例题:哈希杀手,Fibonacci Product .
可能后面再稍微学习一下 \(q\)-analog 的理论,感觉还是挺有趣味的 . 然而 12 月有 31 天!
以下是博客签名,正文无关
本文来自博客园,作者:yspm,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/18640067
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ