總結 篩法 Min 25篩

2021-09-12 16:12:08 字數 2864 閱讀 5471

對於積性函式f(x

)f(x)

f(x) 求∑i=

1i≤n

f(i)

(其中n

≤1011

左右)\sum_^ f(i)(其中n\leq 10^左右)

i=1∑i≤

n​f(

i)(其

中n≤1

011左

右)必須滿足的條件是:

當p為質數時,f(p

)f(p)

f(p)

必須能表示為乙個多項式的形式,即f(p

)=a0

+a1p

+a2p

2+……

f(p)=a_0+a_1p+a_2p^2+……

f(p)=a

0​+a

1​p+

a2​p

2+……

。並且項數不能太多(因為每一項都要手寫公式求和)

在簡介中已經寫到,對於每一項都要分別求和,因此假設我們現在求的是第k+1項,即f(p

)=ak

pkf(p)=a_kp^k

f(p)=a

k​pk

設g (i

,j)=

∑k為質

數,或k

的最小質

pjf(k)

g(i,j)=\sum_f(k)

g(i,j)

=k為質

數,或k

的最小質

pj​∑​f

(k)那麼,顯然g(i

,0)g(i,0)

g(i,0)

就是所有數的k次方和。

這玩意就得考手推公式了:比如0次方和=i,1次方和=i∗(

i+1)

2\frac 2

2i∗(i+

1)​……

然後需要轉移:

首先,要求i≥p

rj∗p

rji\geq pr_j*pr_j

i≥prj​

∗prj

​(否則g(i

當然,暴力算還是會t的。

但是由於乙個性質:(nab

\frac }

ban​

​的個數=n

c\frac

cn​的個數,即不超過2

n2\sqrt n

2n​種)

就可以預處理出可能的ipj

\frac

pj​i

​的值。然後就能快速算了。

然後,設

(當i

ji< pr_jij​

時,s (i

,j)=

0s(i,j)=0

s(i,j)

=0,因此,下面預設i≥p

rji\geq pr_j

i≥prj​

)顯然,其中的質數部分為:g(i

,∣p∣

)−∑k

=1j−

1f(p

k)g(i,|p|)-\sum_^f(p_k)

g(i,∣p

∣)−∑

k=1j

−1​f

(pk​

)1、對於一些題目,可能在某些特定位置不滿足條件,此時可以先忽略,最後再特判這些位置。

2、有些函式在多項式中係數不為1,這時最好先忽略係數,最後來乘。

loj6053簡單的函式

#include
#include

#include

#include

#include

#define sf scanf

#define pf printf

#define maxn 200010

#define mod 1000000007

using

namespace std;

typedef

long

long ll;

ll sqr,n;

bool isprime[maxn]

;int primes[maxn]

,tot;

ll sum[maxn]

;void

prepare()

for(

int j=1;

1ll*i*primes[j]

<=sqr;j++)}

}ll w[maxn]

,id1[maxn]

,id2[maxn]

,g[maxn]

,h[maxn]

;int cnt;

void

get_g()

for(

int j=

1;j<=tot;j++

)for

(int i=

1;i<=cnt&&

1ll*primes[j]

*primes[j]

<=w[i]

;i++)}

ints

(ll x,

int j)

}return res;

}int

main()

演算法 Min 25篩

本篇文章中使用的字母 p 指 text p in text 若函式 f x 滿足,f x 是積性函式 f p 可以使用多項式表示。已知 f p 要能在常數級的時間內計算 f p x x in n min 25篩可以在 theta frac 的時間複雜度內計算 f x 的字首和 或者說 theta n...

Min 25 篩學習筆記

資料和 出處 資料2資料3 打死我也不承認參考了yyb的 min 25 篩可以幹嘛?下文中未特殊說明 p 均指質數集合,p i 或 p 指某個具體質數。求一類積性函式 f x 的字首和,需要滿足 f p 可以寫成多項式的形式,或者操作一下可以寫成多項式 如例題 且 f p k 能快速求出。講真學這個...

Min 25 篩 學習筆記

埃氏篩法 整除分塊 這裡有提到 1.問題模型 2.min 25 篩 3.模板題以及模板 有乙個積性函式 f 對於所有質數 p f p 是關於 p 的多項式,f p k 非常容易計算 不一定是關於 p 的多項式 求 sum f i n leq 10 1s 設集合 p 表示素數集合。設 g sum f ...