2024.12.30 闲话

q-二项式定理:i=0n1(1+qiz)=i=0nqi(i1)/2(ni)qzi .

q-Pochhammer (a:q)n=i=0n1(1aqi) .

对比可以发现 q-Pochhammer 和 q-二项式定理明显有着千丝万缕的联系(

那么可以这样写:

(a:q)n=i=0n(1)iqi(i1)/2(ni)qai

K 逆序对排列计数

给定 n,k,计数有 k 个逆序对的长度为 n 的排列 .

无非就是要计算:

[qk]πS(n)qinv(π)=[qk]([n]!q)=[zk]i=1n1zi1z

可以考虑计算 i=1n(1zi) 然后卷 1(1z)n .

发现一个问题:

i=1n(1zi)=(z:z)n=i=0n(1)izi(i+1)/2(ni)z

可以递推出前 k 项截断在 zk 以下的系数,总复杂度 O(kk) .

q-Pochhammer

给定 a,q,n,计算 (a:q)nmod998244353 .

q 在模 998244353 意义下不等于 1 .

由于某些原因可能需要先特判 qmod998244353=0amod998244353=0 .

根据快速阶乘算法的经验,令块长为 B,只需计算:

f(x)=i=1B(1qix)

a,aqB,aq2B, 处的点值 .

然而 f 的系数可以通过 q-二项式定理 O(B) 递推得到(参考上一个题目),接下来可以使用 CZT 来求点值 .

怎么用 CZT

问题:对于多项式 F 对于每个 i 计算 F(cqi) .

最迅速的做法:首先计算 F(cx),然后就可以直接调用传统 CZT 了 .

平衡一下最后时间复杂度为 O(nlogn)(然而这里直接 ln-exp 求 f 也是一样快的).

例题:哈希杀手Fibonacci Product .

可能后面再稍微学习一下 q-analog 的理论,感觉还是挺有趣味的 . 然而 12 月有 31 天!

posted @   yspm  阅读(122)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2021-12-30 Notice
😅​
点击右上角即可分享
微信分享提示