这篇文章在讲什么

  相信大家都会FWT和FMT。

  如果你不会,推荐你去看一下VFK的2015国家集训队论文。

  设全集为\(U=\{1,2,\ldots,n\}\),假设我们关心的\(f_S\)中的集合\(S\)是\(U\)的子集。

  给你\(c_i,d_i\),令
\[
b_i=(1+c_ix^{d_i})
\]

  求
\[
g=\prod_{i}b_i
\]
  其中两个集合幂级数的乘积为集合并卷积(or)/集合对称差卷积(xor)中的一种。

  不妨设\(d_S\)互不相同(否则可以用DP/组合数什么的搞一下)。

  令
\[
\begin{align}
a_S&=\sum_{d_i=S}c_i\\
f_S&=1+a_Sx^S
\end{align}
\]

暴力做法

  对于每一个集合幂级数暴力做一遍FMT/FWT,然后直接乘在一起,再变换回去。

  时间复杂度:\(O(n4^n)\)

  这个做法太慢了,因为它没有用到本题的特殊条件。

集合或卷积

  对于一个集合幂级数\(f\),定义\(f\)的莫比乌斯变换为集合幂级数\(\hat f\),其中
\[
\begin{align}
\hat f_S=\sum_{T\subseteq S}f_T
\end{align}
\]
  反过来,定义\(\hat f\)的莫比乌斯反演为\(f\),由容斥原理可以得到
\[
f_S=\sum_{T\subseteq S}{(-1)}^{|S|-|T|}\hat f_T
\]
  相信大家都熟悉以上内容。

  回到我们要求的那条式子:
\[
\begin{align}
\hat g_T&=\prod_S \hat{f_{S}}_T\\
&=\prod_S \sum_{K\subseteq T}f_{S,K}\\
&=\prod_{S\subseteq T}{(1+a_S)}
\end{align}
\]
  是不是发现和普通的莫比乌斯变换很像?

  把所有\(a_S\)加上\(1\),把莫比乌斯变换的加法改成乘法,就可以得到\(\hat g_T\)了。

  时间复杂度:\(O(n2^n)\)

集合对称差卷积

  还是要用到那几条式子。
\[
\begin{align}
\hat g_T&=\prod_S\hat {f_S}_T\\
&=\prod_S\sum_{K}f_{S,K}{(-1)}^{|K\cap T|}\\
&=\prod_S(1+a_S{(-1)}^{|S\cap T|})
\end{align}
\]
  这个和沃尔什变换也很像,但是\({(-1)}^{|S\cap T|}\)只乘在了\(a_S\)上面,所以不能把\(a_S\)加\(1\)后做变种沃尔什变换。

  但是我们可以再维护一个\(\hat h_T=\prod_S(1-a_S{(-1)}^{|S\cap T|})\),把沃尔什变换中的\(-\hat g_T\)全部换成\(\hat h_T\),就可以做了。

  时间复杂度:\(O(n2^n)\)

代码

  先坑着

  (http://uoj.ac/submission/236983)

一个有关FWT&FMT的东西的更多相关文章

  1. [学习笔记&教程] 信号, 集合, 多项式, 以及各种卷积性变换 (FFT,NTT,FWT,FMT)

    目录 信号, 集合, 多项式, 以及卷积性变换 卷积 卷积性变换 傅里叶变换与信号 引入: 信号分析 变换的基础: 复数 傅里叶变换 离散傅里叶变换 FFT 与多项式 \(n\) 次单位复根 消去引理 ...

  2. C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西付给另一个类对象,而不是付给引用地址)

    from:https://blog.csdn.net/poxiaohai2011/article/details/27555951 //C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西 ...

  3. @总结 - 2@ 位运算卷积/子集卷积 —— FWT/FMT

    目录 @0 - 参考资料@ @1 - 异或卷积概念及性质@ @2 - 快速沃尔什正变换(异或)@ @3 - 快速沃尔什逆变换(异或)@ @4 - 与卷积.或卷积@ @5 - 参考代码实现@ @6 - ...

  4. 【学习笔记】fwt&&fmt&&子集卷积

    前言:yyb神仙的博客 FWT 基本思路:将多项式变成点值表达,点值相乘之后再逆变换回来得到特定形式的卷积: 多项式的次数界都为\(2^n\)的形式,\(A_0\)定义为前一半多项式(下标二进制第一位 ...

  5. 在ASP.NET下做了一个实验MVC的小东西

    星期五下班前一时兴起,对MVC发表了一点看法.后来就想干脆弄个小东西来验证一些自己的想法帮组理清思路.所要源代码的免了,3个小时的急就章实在是乱得可以,既没有好的架构,也没有任何代码质量可言,主要是实 ...

  6. [WC2018]州区划分(状压DP+FWT/FMT)

    很裸的子集反演模板题,套上一些莫名其妙的外衣. 先预处理每个集合是否合法,再作显然的状压DP.然后发现可以写成子集反演的形式,直接套模板即可. 子集反演可以看这里. 子集反演的过程就是多设一维代表集合 ...

  7. 《转》架设一个BLOG需要整合多少东西?

    本文转载自大CC 1 Wordpress本身需要花费功夫的地方不多,比较容易,但Themes要花不少功夫调整,有时还得改CSS.推荐几个Wordpress Themes网站: - http://the ...

  8. 推荐一个IT人必备的东西【用过的都懂,让我们的环境越来越好吧】

    有个东西叫IT人手册,不知道各位有用过吗?不过很可惜以前那个关掉了,那个网站说出了我们IT人太多的新声以及一些黑心公司,不过被迫压力下关闭了 我不是托,我只是分享 我觉得这种东西应该存在下去~!!!至 ...

  9. 贴一个CMemDC 代码,这东西真不错噢,短小精悍,可谓极品

    罗索客 发布于 2006-11-28 21:53 点击:3941次  来自: 原文: http://yuantao82.spaces.live.com/Blog/cns!8FC0A772D812A22 ...

随机推荐

  1. 使用 Markdown编辑

    作用: 学习笔记,整理日志, 发布日记,杂文,所见所想 撰写发布技术文稿(代码支持) 撰写发布学术论文(LaTeX 公式支持) sublime text3插件 输入 Shift + Ctrl + P, ...

  2. Vue $nextTick 原理

    使用场景 在进行获取数据后,需要对新视图进行下一步操作或者其他操作时,发现获取不到 DOM. 原因: 这里就涉及到 Vue 一个很重要的概念:异步更新队列(JS运行机制 . 事件循环). Vue 在观 ...

  3. CF892/problem/C

    题目传送门: [http://codeforces.com/contest/892/problem/C] 题意: 给你一个长度为n的数组,相邻两个元素的GCD(最大公约数)可以取代二者的任意一个,问你 ...

  4. 使用C# HttpWebRequest进行多线程网页提交。Async httpclient/HttpWebRequest实现批量任务的发布及异步提交和超时取消

    使用线程池并发处理request请求及错误重试,使用委托处理UI界面输出. http://www.cnblogs.com/Charltsing/p/httpwebrequest.html for (i ...

  5. Springboot+Redis 配置和使用

    pom.xml 引入redis 开启缓存 <!-- cache --> <dependency> <groupId>org.springframework.boot ...

  6. iOS上手指点击波纹效果的实现

    https://www.jianshu.com/p/35e6f53ca0fe 2016.10.19 22:00* 字数 135 阅读 2468评论 2喜欢 7 闲暇时间做了一个反馈手指点击屏幕的效果, ...

  7. Windows激活

    最近重新安装了一下系统,我的系统是Windows10.这就出现了一个问题,如果是Windows7系统的话,可以使用网上的破解工具进行破解操作,使之成为永久破解版.但是Windows10系统,网上对于它 ...

  8. jmeter接口测试------基础笔记

    1.postman发送json格式的post请求,直接放链接 row里面body放请求参数,得到请求结果 2.jmeter请求json时需要注意在请求前创建http信息头管理器,然后信息头添加一条名称 ...

  9. 关于微信小程序使用canvas生成图片,内容图片跨域的问题

    最近有个项目是保存为名片(图片),让用户发送给朋友或朋友圈,找了很多方案都不适用,绞尽脑汁之后还是选了使用canvas,但是用这玩意儿生成图片最大的缺点就是,如果你的内容中有图片,并且这个图片是通过外 ...

  10. 使用css控制文字显示几行并且剩余部分隐藏(移动端和PC端同样适用)

    前言 有些需求需要我们控制一段文本最多显示几行,就像逛淘宝京东的评价楼层一样,有时可能还需要隐藏剩余部分,这样的需求我们怎么来解决呢? 解决办法 我们完全可以使用css来解决这一需求 1. 解决文本显 ...