狄利克雷卷積 優秀序列

2021-09-27 01:31:02 字數 1528 閱讀 6743

顯然這道題目和兩個函式沒有任何關係,僅僅是為了考察你是否會線性篩法以及用於權值的計算。

我們設fk(

n)f_k(n)

fk​(n)

表示k個數乘積為n的權值和。那麼就有:fk(

n)=∑

k∣nf

p(k)

×fk−

p(nk

)f_k(n)=\sum_ f_(k)\times f_(\frac)

fk​(n)

=k∣n

∑​fp

​(k)

×fk−

p​(k

n​)然後觀察一下這乙個算式的特性,我們發現其實p

pp在這裡可以是任意的乙個數。

那麼我們將這裡的一次操作記為一次卷積。那麼我們發現在這裡其實就是做k次卷積。

因此我們需要用到狄利克雷卷積演算法。由於該卷積支援快速冪,我們可以使用卷積快速冪來實現。

具體做法如下:

我們可以用倍數法完成卷積,時間複雜度o(n

logn

)o(n\ \mathrm\ n)

o(nlogn).

#include

#include

#include

using

namespace std;

const

int n =

2e5;

const

int p =

998244353

;int cnt =

0, n, k;

int phi[n]

, mul[n]

, vis[n]

, prime[n]

, f[n]

, g[n]

, res[n]

;int

read

(void

)void

init

(void

) mul[i*prime[j]]=

-mul[i]

; phi[i*prime[j]

]= phi[i]

*(prime[j]-1

);}}

g[1]=

1;for(

int i=

1;i<=n;

++i) f[i]=2

* phi[i]

+ mul[i]

;return;}

void

mul(

void

)void

mulself

(void

)void

power

(int k)

for(

int i=

1;i<=n;

++i)

return;}

intmain

(void

)

狄利克雷卷積 狄利克雷卷積學習筆記

前置知識 1 常見的完全積性函式 恒等函式 i i n 1 單位函式 id id n n 元函式 epsilon epsilon n n 1 元函式卷積任何函式 f 都是 f 本身 2 常見積性函式 尤拉函式 varphi n 是小於n和n互質的自然數個數 莫比烏斯函式 mu n sigma sig...

狄利克雷卷積

積性函式 f 和 g 狄利克雷卷積的形式 f ast g n sum limits f d g frac 或者 f ast g n sum limits f i g j 它滿足證明 f ast g ast h sum limits sum limits f d g frac h frac 等同於 f...

狄利克雷卷積

狄利克雷卷積 是定義在數論函式間的一種二元運算,可以定義為 f g n sum limits f x g y 或 f g n sum limits f d g frac 若 f,g 均為積性函式,則 f g 也是積性函式。顯然 f g 1 f 1 g 1 1 設 n perp m 則 begin f...