one last fwt

news/2025/1/18 8:00:40/文章来源:https://www.cnblogs.com/NtYester/p/18677753

因为今天场上成功手搓三维 FWT 决定深刻背诵一下。

以下默认 \(\oplus\) 为高维不进位加法。

分圆多项式

手玩转移矩阵太过神秘了,不讨论了就。

定义分圆多项式 \(\Phi_k(x)=\prod_{\gcd(i,k)=1}(x-w_k^i)\)

根据 \(x^i-1=\prod_{d|i}\Phi_d(x)\) 可以化简得到 \(\Phi_k(x)=\prod_{d|k}(x^d-1)^{\mu(\frac{k}{d})}\)

分圆多项式是素多项式,在高维 FWT 中可以当成模数使用。

然后因为 \(\Phi_k(x)|x^k-1\),所以一般过程中模 \(x^k-1\),最后再模 \(\Phi_k(x)\)

高维 FWT

以下只讨论 \(\oplus\)

因为 FWT 是线性变换所以考虑构造变换矩阵:

\[\begin{bmatrix} 1&1&1&\cdots&1&1&1\\ 1&w_k^1&w_k^2&\cdots&w_k^{k-3}&w_k^{k-2}&w_k^{k-1}\\ 1&w_k^2&w_k^4&\cdots&w_k^{2(k-3)}&w_k^{2(k-2)}&w_k^{2(k-1)}\\ \vdots&\vdots&\vdots&\ddots&\vdots&\vdots&\vdots\\ 1&w_k^{k-3}&w_k^{2(k-3)}&\cdots&w_k^{(k-3)(k-3)}&w_k^{(k-3)(k-2)}&w_k^{(k-3)(k-1)}\\ 1&w_k^{k-2}&w_k^{2(k-2)}&\cdots&w_k^{(k-3)(k-2)}&w_k^{(k-2)(k-2)}&w_k^{(k-2)(k-1)}\\ 1&w_k^{k-1}&w_k^{2(k-1)}&\cdots&w_k^{(k-3)(k-1)}&w_k^{(k-2)(k-1)}&w_k^{(k-1)(k-1)}\\ \end{bmatrix} \]

其中 \(w_{j,i}w_{k,i}=w_{j\oplus k,i}\)

然后这是范德蒙德矩阵,所以逆变换矩阵为:

\[\frac{1}{k}\begin{bmatrix} 1&1&1&\cdots&1&1&1\\ 1&w_k^{-1}&w_k^{-2}&\cdots&w_k^{-(k-3)}&w_k^{-(k-2)}&w_k^{-(k-1)}\\ 1&w_k^{-2}&w_k^{-4}&\cdots&w_k^{-2(k-3)}&w_k^{-2(k-2)}&w_k^{-2(k-1)}\\ \vdots&\vdots&\vdots&\ddots&\vdots&\vdots&\vdots\\ 1&w_k^{-(k-3)}&w_k^{-2(k-3)}&\cdots&w_k^{-(k-3)(k-3)}&w_k^{-(k-3)(k-2)}&w_k^{-(k-3)(k-1)}\\ 1&w_k^{-(k-2)}&w_k^{-2(k-2)}&\cdots&w_k^{-(k-3)(k-2)}&w_k^{-(k-2)(k-2)}&w_k^{-(k-2)(k-1)}\\ 1&w_k^{-(k-1)}&w_k^{-2(k-1)}&\cdots&w_k^{-(k-3)(k-1)}&w_k^{-(k-2)(k-1)}&w_k^{-(k-1)(k-1)}\\ \end{bmatrix} \]

模数良好时模意义下可能存在单位根 \(w_k\),但是有时可能不存在,所以考虑一种通解,去人为定义一个形式幂级数 \(x\),然后做模多项式运算。

一般这里的模数多项式取 \(\Phi_k(x)\),因为你取 \(x^k-1\) 为模数多项式时,他不是素的,所以可能存在多项式没有逆元,取 \(\Phi_k(x)\) 就没有这个问题。

关于复杂度,你正常 FWT 不看内层运算的复杂度是 \(O(mk^m)\),内层运算的复杂度是 \(O(k^2\times k)\) 的,所以总复杂度是 \(O(mk^{m+3})\)

例题

CF1103E

就是求 \((\sum x^{a_i})^n\),高维 FWT 板子。

P5577

就是求 \(\prod_{i=1}^n(1+x^{a_i})\),因为 \(n\) 较大所以肯定不能暴力算,考虑研究一下 \(FWT(1+x^{a_i})\) 的性质。

不难发现 \(FWT_k(1+x^{a_i})=c_{1,k}+c_{a_i,k}=1+c_{a_i,k}\)

那么 \(FWT_k(\prod_{i=1}^n(1+x^{a_i}))=\prod_{i=1}^nFWT_k(1+x^{a_i})=\prod_{i=1}^n(1+c_{a_i,k})\)

所以说你现在只需要去计算 \(1+c_{a_i,k}\) 的指数,因为 \(c_{a_i,k}\) 只有 \(k\) 中取值,所以相当于要对每一位计算 \(1+w_k^n\) 的指数。

然后我们再考虑 \(FWT_k(\sum_{i=1}^nx^{a_i})=\sum_{i=1}^nFWT(x^{a_i})=\sum_{i=1}^nc_{a_i,k}\),也就是说直接对原序列的计数数组 FWT 得到结果的每一位的 \(w_k^n\) 的系数,就是你原始式子 \(1+w_k^n\) 的指数。

然后套板子就行。

ABC367G

求的是 \(\sum_{k=0}^Nk^K[x^ky^0]\prod_{i=1}^n(1+x^{a_i}y)\)\(x\) 做的是异或卷积,\(y\) 做的是长为 \(m\) 循环卷积。

先考虑求后面的 \(\prod_{i=1}^n(1+x^{a_i}y)\),发现这长得很像上一题,因为二位异或 FWT 的矩阵是 \(\begin{bmatrix}1&1\\1&-1\end{bmatrix}\),所以 \(FWT_k(\prod_{i=1}^n(1+x^{a_i}y))=\prod_{i=1}^nFWT_k(1+x^{a_i}y)=\prod_{i=1}^n(1\plusmn y)\)

相当于你对每一位要算 \(1+y\) 的系数和 \(1-y\) 的指数,设这两个指数为 \(c_0,c_1\),根据上一题的结论我们有 \(c_0+c_1=n,c_0-c_1=FWT_k(\sum x^{a_i})\)

然后求出 \([y^0](1+y)^{c_0}(1-y)^{c_1}\) 后再 IFWT 回去就是答案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/871121.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3D-NAND 计算(下)

过去几年, 具有存算一体特性的 AI 芯片不断 涌现, 工艺节点涵盖了 14—180 nm, 计算架构包括 了近存计算、存内计算和神经形态计算, 应用场景 覆盖了边缘端到云端设备. 在各种硬件方案中, 基 于 3D-NAND 的神经形态芯片在芯片容量, CMOS 工艺兼容性和成本方面极具优势. 本文首先…

海康工业相机的应用部署不是简简单单!?

作者:SkyXZ CSDN:SkyXZ~-CSDN博客 博客园:SkyXZ - 博客园 笔者使用的设备及环境:WSL2-Ubuntu22.04+MV-CS016-10UC 不会吧?不会吧?不会还有人拿到海康工业相机还是一脸懵叭?不会还有人觉得海康相机的API使用很难叭?不用慌!这篇文章从官方文档涵盖了海康相机官方…

3D-NAND 计算(上)

3D-NAND 闪存工艺成熟并且存储密度极高, 基于 3D-NAND 的神经形态芯片受到许多研究者的关注. 然而由于该技术的专利性质, 少有基 于 3D-NAND 神经形态计算的硬件实现. 本文综述了用 3D-NAND 实现神经形态计算的工作, 介绍了其中前 向传播和反向传播的机制, 并提出了目前 3D NAN…

blender4.3.2-修改器

关于修改器的其他问题 1.在修改器执行应用前,无法与其他物体进行合并 阵列修改器 生成->阵列指定数量和间隔,生成克隆体,所有克隆体同步发生选中和修改 倒角修改器 生成->倒角使用倒角修改器而不直接使用编辑模式中的倒角,好处在于像立方体这种使用了倒角修改器而未应…

推荐书籍《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》4本,谢谢

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

2025 最佳免费商用文本转语音模型: Kokoro TTS

在文本转语音(TTS)技术领域,一项突破性的进展引起了广泛关注——Kokoro TTS 模型凭借其卓越性能和完全免费的商用许可,成为目前最出色的 TTS 解决方案之一。基于广受欢迎的开源框架 StyleTTS,Kokoro TTS 在灵活性和功能性上都表现出色,可广泛应用于多种场景。接下来,我们…

2025春秋杯部分wpDAY1

2025春秋杯 DAY1 WEB easy_flask 直接fenjing一把梭file_copy 下载github上的脚本MISC 简单算术 题目提示了异或简单镜像提取formost提取到镜像文件然后用autopsy打开flag{E7A10C15E26AA5750070EF756AAA1F7C} CRYPTO 通往哈希的旅程 import hashlib# 目标哈希值 target_hash = …

【教育行业】2024中国网络安全产业势能榜优能企业「教育行业」典型案例展示

教育行业的数字化转型不断加速,线上教学、学籍管理、科研数据等方面的安全问题日益突出。随着教育信息化的不断推进,如何保护学生和教师的个人信息、确保教学平台的安全成为亟待解决的重要课题。我们将通过一些典型案例,展示教育行业在提升信息安全方面的最新成果和应对之策…

去攀登更高的山,渡过更长的河--软件工程个人总结

轻舟已过万重山——2024秋软工实践个人总结博客一、学期回顾 1.1 回顾你对于软件工程课程的想象 初次接触软件工程这门课程时,我内心充满了忐忑与不安 😰。作为一门实践性极强的课程,它不仅要求我们掌握各种开发技术,还需要我们具备团队协作、项目管理等综合能力。我记得第…

Avalonia系列文章之小试牛刀

最近有朋友反馈,能否分享一下Avalonia相关的文章,于是就抽空学习了一下,发现Avalonia真的是一款非常不错的UI框架,值得花时间认真学习一下,于是边学习边记录,整理成文,分享给大家,希望可以一起学习,共同进步。最近有朋友反馈,能否分享一下Avalonia相关的文章,于是就…

器件选型基础知识

器件选型基础知识器件选型基础知识 1. PCB结构与工艺 PCB主要由五部分组成,分别是介电层、孔、防焊墨油、丝印和线路组成。介电层:用来保持线路及各层之间的绝缘性,俗称为基材,最常见的材料是玻璃纤维; 孔:导通孔可以使两层次以上的线路彼此导通; 防焊墨油:对于整个电路…

【CodeForces训练记录】Codeforces Round 997 (Div. 2)

训练情况赛后反思 A题犯蠢了,题目看成面积了,C题应该可以更快的搓出来,只能说结论猜了几次不对 A题 我们把周长移动一下,补成一个长方形,左下角的坐标为 \((x_1,y_1)\),右上角坐标为 \((\sum{x_i}+m,\sum{y_i}+m)\),已知两点直接求周长 #include <bits/stdc++.h> …