首页 > 其他分享 >学习笔记:集合幂级数与 FWT

学习笔记:集合幂级数与 FWT

时间:2024-05-22 17:51:27浏览次数:15  
标签:卷积 text sum 笔记 幂级数 集合 FWT id

集合幂级数

集合到整数

设 \(n\) 元集 \(A = a_1, a_2, \cdots, a_n\),定义 \(A\) 的幂集 \(2^{A} = \{S\mid S \subseteq A\}\) 到整数集 \(\mathbb{Z}\) 的映射 \(\text{id}\) 为:

若 \(S = \{a_{i_1}, a_{i_2}, \cdots, a_{i_k}\}\),则 \(\text{id}(S) = \sum_{j = 1}^{k}2^{i_j - 1}\),即状态压缩。

  • \(\text{id}\) 定义了 \(2^A\) 到 \([0, 2^{n} - 1]\) 的一一映射。
  • \(\text{id}(S\cup T) = \text{id}(S) \text{ | } \text{id}(T)\)。
  • \(\text{id}(S\cap T) = \text{id}(S) \text{ & } \text{id}(T)\)。
  • \(\text{id}(S \triangle T) = \text{id}(S) \text{ ^ } \text{id}(T)\)。(\(S \triangle T = S\cup T - S\cap T\))

子集枚举:(枚举子集的子集)

for(int i = 0; i < 1 << n; ++ i) {
    for(int s = i; s; s = (s - 1) & i) {
        //
        if(s == 0) break;
    }
}

集合幂级数

给每个 \(S \in 2^A\) 赋予一个权值 \(w(S)\),则它关联的集合幂级数为 \(f(x) = \sum_{S\subseteq A} w(S)x^{\text{id}(S)}\)。

与、或、异或卷积

对于集合幂级数 \(A, \ B\),他们的与卷积 \(C = A * B\),满足 \(c_k = \sum\limits_{i \&j = k}a_ib_j\),或和异或有类似定义。

与卷积中的单位元:\(e(x) = x^{2^n - 1}\),满足 \(\forall f(x) * e(x) = f(x)\)。

性质:\(\sum_{S\subseteq T}w(T) = [x^{\text{id}(S)}]f(x) * (1 + x + \cdots+ x^{2^n - 1})\)。(超集和)

快速沃尔什变换

对于集合幂级数 \(A, B\),求他们的与卷积 \(C\)。

思路:\(A, B \xrightarrow{\mathcal F} A', B' \rightarrow C'\xrightarrow{\mathcal F^{-1}} C\)。(\(\mathcal F\) 是某种变换)

标签:卷积,text,sum,笔记,幂级数,集合,FWT,id
From: https://www.cnblogs.com/Luxinze/p/18206815

相关文章

  • 经常出差用哪些办公软件记录工作?可多设备同步使用的便签笔记软件
    对于许多职场人士来说,出差已成为工作常态。在旅途中,如何高效处理工作,确保信息不遗漏,成为了一个不小的挑战。那么,对于经常需要移动办公的我们,哪款办公软件才是最佳选择呢?可多设备同步使用的便签笔记软件是哪款?答案就是——敬业签,一款强大而便捷的便签笔记软件。它的强大之处在于其......
  • 学习笔记:Miller-Rabin 与 Pollard-Rho
    Miller_Rabin首先考虑方程\(x^2\equiv1\pmodn\)。可以写成\((x+1)(x-1)=kn\)。当\(n\)为素数时,只可能\(n\midx+1\)或\(n\midx-1\),反之合数不满足。得到结论:在模素数意义下,一个数的平方等于\(1\)当且仅当这个数同余于\(1\)或\(-1\)。我们知道,......
  • Mars的学习笔记(更新中)
    前言这篇文章主要用来总结我之前所学的算法,以更好地复习。希望大家在看时能理解我所说的话(包括未来的我)算法大典KMPKMP是一个强大的字符串搜索算法,可以在线性的复杂度下将所需要的子串位置精确的找出。它的最大特点就是搜索是不会回溯。朴素思想给出两个字符串ababababbab......
  • 《梦断代码》阅读笔记3
        对这本书的阅读终于要结束了,“梦断代码”:代码阻断了梦的实现吗?一直以为,计算机是万能的,自己想的都可以通过代码实现。在接触代码以后的这段时间里,我的想法改变了。代码可以实现自己的想法,但是怎么实现却要看自己了,算法自己思考,计算机只负责运行,运行通过就说明算法通过......
  • Java学习笔记(一)
    Java学习笔记(一)字节计算机存储的最小计量单位:byteB存储单位换算:8bit=1B(byte)1024B=1KB1024KB=1MB1024MB=1GJava环境jvm与跨平台:jvm——运行Java程序的假想计算机跨平台——Java代码能在不同操作系统上运行两者关系——想要实现跨平台,需要安装对应版本......
  • Asp-Net-Core开发笔记:使用原生的接口限流功能
    前言之前介绍过使用AspNetCoreRateLimit组件来实现接口限流从.Net7开始,AspNetCore开始内置限流组件,当时我们的项目还在.Net6所以只能用第三方的现在都升级到.Net8了,当然是得来试试这个原生组件体验后:配置使用都比较简单,不过功能也没有AspNetCoreRateLimit那么灵活......
  • ZooKeeper论文笔记.18205343
    概要是什么:ZooKeeper是一个分布式系统的基础构件(协调内核),分布式应用(如RocketMQ)可以使用ZooKeeper来处理分布式系统协同的各个方面,比如可以使用它来实现leader选举、分布式锁等等,分布式应用可以使用它暴露的API实现各种类型的协同原语(考虑Java中的AQS)。它让分布式应用的设计者无需......
  • 《人月神话》阅读笔记
    终于有幸拜读了《人月神话》这部业内经典著作。整体来说,本书的主线——人月神话、没有银弹在现今的软件工程管理领域依然属于有效的基础理论。不过有些东西确实过时了,比方说文档的管理,现在已经有了svn或者在线文档。提到调试的复杂性,现在的集成环境把调试变得非常容易。读完之后才......
  • 《人月神话读书笔记二》
    贯彻执行即使是大型的设计团队,设计结果也必须由一个或两个人来完成,以确保这些决定是一致的。允许体系结构师对实现人员的询问做出电话应答解释是非常重要的,并且必须进行日志记录和整理发布。对于存有疑问的实现人员,应鼓励他们打电话询问相应的结构师,而不是一边自行猜测一边工作......
  • 笔记本温度常识
         ......