当前位置: 首页 > news >正文

集合幂级数 学习笔记

基本知识

定义

集合幂级数是一种幂级数,简单来说就是在常见的多项式中占位元的指数是一个整数,在集合幂级数中它的指数是一个集合。

基本运算

集合幂级数的加法是平凡的。

集合幂级数的乘法是子集卷积,即对于两个集合幂级数 \(F,G\),它们乘积的结果为

\[[x^S](F*G)=\sum_{T \subset S} [x^T]F \times[x^{S/T}]G \]

那么这类似于或卷积,但是要求两集合无交。这使得我们直接用 FWT 做或卷积是错的。我们注意到若 \(S\cap T=\emptyset\),则 \(|S|+|T|=|S\cup T|\),于是引入额外的占位符 \(y\) 表示 \(|S|\),那么子集卷积就变成:

\[[x^Sy^{|S|}](F*G)=\sum_{T \subset S}[x^Ty^{|T|}]F\times[x^{S/T}y^{|S/T|}]G \]

从另一个角度看,这其实是把集合和其大小分开了,做乘法时 \(x\) 就正常做或卷积,\(y\) 就正常做和卷积。因为 \(y\) 的指数可以由 \(x\) 求出来,所以下文中通常只讨论 \(x\) 的指数。

函数复合

常见的只有三个:求逆,\(\ln\)\(\exp\)

考虑通过上述方法将幂级数的运算变成普通多项式运算,因为多项式方法常数较大,我们一般采用半在线卷积,时间复杂度为 \(O(n^22^n)\)

以下均假设 \(A(x)\) 是已知,\(B(x)\) 为要求的答案,将 \([x^i]F\) 简记为 \(F_i\)

求逆

\(A(x)B(x)=1\)

那么对每一位进行分析就是 \(\sum_{i=0}^nA_iB_{n-i}=[n=0]\)。那么容易发现 \(B_0=\dfrac{1}{A_0},B_i=-\dfrac{1}{A_i}\sum_{j=1}^iA_jB_{i-j}\),。接下来交给半在线卷积。

ln

\(B(x)=\ln(A(x))\),先求导 \(B'(x)=\dfrac{A'(x)}{A(x)}\),移项得到 \(B'(x)A(x)=A'(x)\)。分析系数:

\[\begin{aligned} \sum_{i=0}^n(i+1)B_{i+1}A_{n-i}&=(n+1)A_{n+1}\\ (n+1)B_{n+1}A_0&=(n+1)A_{n+1}-\sum_{i=0}^{n-1}(i+1)B_{i+1}A_{n-i}\\ B_n&=\dfrac{nA_n-\sum_{i=0}^{n-2}(i+1)B_{i+1}A_{n-i-1}}{nA_0}\\ B_n&=\dfrac{nA_n-\sum_{i=1}^{n-1}iB_{i}A_{n-i}}{nA_0}\\ B_n&=A_n-\dfrac{\sum_{i=1}^{n-1}iB_{i}A_{n-i}}{n}(A_0=1)\\ \end{aligned} \]

exp

\(B(x)=e^{A(x)}\),求导后有 \(B'(x)=B(x)A'(x)\),分析系数:

\[\begin{aligned} (n+1)B_{n+1}&=\sum_{i=0}^n(n-i+1)B_iA_{n-i+1}\\ nB_n&=\sum_{i=0}^{n-1}(n-i)B_iA_{n-i}\\ nB_n&=\sum_{i=0}^{n-1}iA_iB_{n-i} \end{aligned} \]

复合的组合意义

exp

考虑 \(\exp\) 的展开式:\(\sum_{i} \dfrac{F^i(x)}{i!}\)

\(F^i(x)\) 表示选取 \(i\) 个无交集合取并,除 \(i!\) 表示不论顺序,那么组合意义就是组合 \(i\) 个无序无交集合,组合表示权值的乘积。

ln

\(\ln\)\(\exp\) 的逆运算,表示将集合拆成若干无序无交集合,且这些集合的组合是当前集合的权值。

半在线技巧

考虑 \(y\) 这个占位元:如果要计算包含 \(y^i\) 的多项式,那么只需要提供 \(y^j(j<i)\) 的多项式。

例题:WC 2018 州区划分

参考资料

集合幂级数在子图计数上的应用 —— Richard_whr

http://www.jsqmd.com/news/675520/

相关文章:

  • 终极ytfzf多搜索功能实战:如何同时搜索YouTube和Odysee视频
  • 2026年好用的莲子味肉燕礼盒、传统风味肉燕礼盒、典雅肉燕礼盒选购攻略 - 工业推荐榜
  • 终极Vimplus配置指南:一键打造最强Vim插件集合的完整教程
  • 如何从零开始创建React Stockcharts自定义技术指标与图表类型:完整实践指南
  • Real Anime Z效果实拍:打印级输出在A3幅面下的线条锐度与渐变平滑度
  • 我烧了50万GPU小时后悟出的模型蒸馏真理:一份给软件测试从业者的思维启示
  • Zotero Citation插件终极指南:三步实现Word文献引用自动化
  • 如何在Firefox浏览器中实现多语言组件集成:UniFFI-rs的实战应用指南
  • 如何选择LeetCode2的多语言支持:Java、JavaScript与Shell脚本的终极指南
  • Agent-Ready不是噱头!Spring Boot 4.0 的Java Agent兼容性验证清单,含JDK 21+、GraalVM Native Image实测数据
  • awesome-computer-science-opportunities完整指南:计算机科学学生的终极机会宝库
  • tao-8k开源Embedding模型实测:对比BGE、text2vec等主流模型效果
  • 2026年传统肉燕礼盒、莲子味肉燕礼盒、新鲜肉燕礼盒怎么收费 - mypinpai
  • 终极React Native Upgrade Helper使用指南:从版本选择到成功升级的完整流程
  • StreamEx并行处理指南:如何充分利用多核CPU性能
  • Redis数据结构和命令实战:基于Redis in Action的完整教程
  • 探寻泰科天润代理商,供货能力和客户维护能力如何考量 - myqiye
  • 终极指南:如何快速掌握ChooseALicense.com许可证规则系统的权限、条件与限制
  • Z-Image-Turbo开箱即用:无需下载,一键启动文生图服务
  • 碧蓝航线自动化终极指南:告别重复操作,让AzurLaneAutoScript接管一切
  • 2026年性价比高的丹阳肉燕厂家推荐,给区域批发商供货的选哪家 - 工业设备
  • 次元画室卷积神经网络原理浅析:从底层理解图像生成过程
  • gh_mirrors/re/releases常见问题排查:10种解决方案快速解决使用难题
  • 有哪些能同时降低论文重复率和AI生成率的降重工具?求真实推荐
  • Oboe核心特性解析:10个必知的高性能音频开发技巧
  • Spytify批量录制技巧:如何高效处理大型播放列表
  • NVIDIA Profile Inspector:解锁显卡隐藏性能的5大核心技巧
  • 品质稳定的福州鱼丸生产企业推荐,做预包装批发如何选择 - 工业品网
  • 5大理由选择ccls:C++开发者必备的终极语言服务器指南
  • 网络测评博主实测|6款AI写作工具红黑榜,PPT制作+降AI率+降重一篇讲透!