莫比烏斯變換 子集卷積

2021-09-11 22:09:14 字數 1040 閱讀 5211

大佬の部落格

fwt與運算。

其實就是這個的低配版本

用來快速計算子集卷積。

就是說,

f [i

]=∑g

[j]∗

h[k]

(j∣k

=i&&

j&k=

0)f[i]=\sum

f[i]=∑

g[j]

∗h[k

](j∣

k=i&

&j&k

=0)打包運算。

首先我們考慮它的低配版本。

f [i

]=∑g

[j]∗

h[k]

(j∣k

=i)f[i]=\sum

f[i]=∑

g[j]

∗h[k

](j∣

k=i)

我們定義f1[i]表示所有i的子集的和。

不如直接看圖算了。.

這樣我們就實現了打包運算:h』[i]表示所有下標是i的子集的答案之和。

考慮我們算重了什麼。

我們會把有交集的下標算進去,比如2&3

=22\&3=2

2&3=

2實際上是不行的。

統計位數。

令f[i][j]表示下標為i,i中有j個1的f的對應變換,即只考慮所有pop

coun

t(i)

==jpopcount(i)==j

popcou

nt(i

)==j

的原f陣列為對應值。

然後列舉兩邊的1個數,只有所有1的個數與下標實際1的個數相同的才會產生貢獻。

(否則就是打包出鍋了。)

最後對於每個下標處相乘時多項式反演即可。

用n

2n^2

n2即可。小朋友化式子法

總結 快速莫比烏斯變換和子集卷積

馬上noip了我在學點啥 求集合並卷積,即 h s sum sum l cup r f l g r 要求更嚴一點,求子集卷積,即 h s sum sum l cup r s l cap r varnothing f l g r sum f l g 先看集合並卷積 最暴力的做法就是 o 2 n 分別列...

科技 快速莫比烏斯變換(反演) 與 子集卷積

我們比較了解的是有關多項式的乘法運算,對於下標為整數,下標運算為相加等於某個數的時候,我們有很優秀的fft做法。但是遇到一些奇怪的卷積形式時,比如我們定義 h f g h sum limits sum limits l cup r s f g 此時下標是乙個集合,運算為集合並的卷積,我們已知了 f ...

莫比烏斯函式與莫比烏斯反演

1.1 莫比烏斯函式 莫比烏斯函式可以看做乙個輔助函式,它在莫比烏斯反演公式中用到。1.2 莫比烏斯反演 莫比烏斯反演公式是 根據和函式來求算數函式的乙個公式。1.3 算數函式 所有在正整數上運算的函式稱為算數函式。1.4 和函式 設 f 是算數函式,f 的和函式為n的所有約數的算數函式之和。1.5...