HDU5608 function 【杜教篩】
題目描述
N2−3N+2=∑d∣nf(d)
求
∑i=1nf(i) mod 1e9+7
多組資料,
T≤500,N≤109,至多5組資料
N>=106
題目分析
杜教篩其實就是用狄利克雷卷積優化
把
n2−3n+2 看作
g(n)
那麼可看出
f∗I=g
倘若用於卷積的其中一個函式(此處的
I)和卷積後的函式(此處的
g)很好求字首和,那麼就可以優化求卷積中的另一個函式的字首和
i=1∑ng(i)=i=1∑nd∣i∑f(d)∗I(di) =i=1∑nd=1∑⌊in⌋f(d)∗I(i)
上式第二行中的
i實際上是在列舉第一行中
i是
d的幾倍
這樣就使得
d連續,便於分塊優化,記
∑i=1nf(i)=F(n)
i=1∑ng(i)=i=1∑nd=1∑⌊in⌋f(d)∗I(i) =i=1∑nF(⌊in⌋)∗I(i)
把
i=1移到左邊,g移到右邊,得到
F(n)∗I(1)=F(n)=i=1∑ng(i) −i=2∑nF(⌊in⌋)∗I(i)
g(i)可以O(1)求,F用分塊優化,
O(n43)
但是還是會TLE,需要線性篩出 n≤106的F,時間複雜度可以降到 O(n32)
f∗I=gf∗(I∗μ)=g∗μf∗e=g∗μ<
相關推薦
HDU5608 function 【杜教篩】
題目描述 N 2 −
【雜題】[51Nod 1238] 最小公倍數之和 V3【數論】【杜教篩】
Description 求 ∑ i
[51Nod 1238] 最小公倍數之和 V3【數論】【杜教篩】【未完成】
Description 求 ∑i=1n∑j=1nlcm(i,j)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n} lcm(i,j)i=1∑nj=1∑nlcm(i,
BZOJ 4805 尤拉函式求和【杜教篩】
求尤拉函式的字首和,項數小於2e9。 以目前的視野來看待杜教篩的話,感覺就像是將一個線性的式子,進一步優化,然後通過記憶化搜尋來實現的一個過程。 S(n)=∑i=1nϕ(i)S(n)=∑i=
51Nod1220 約數之和 【杜教篩】
題目描述: 求 ∑ i
51nod1238 最小公倍數之和V3【杜教篩】
題意: 求 ∑ i
【杜教篩】51Nod1244[莫比烏斯函式之和]題解
題目概述 求 ∑ni=1μ(i) 。 解題報告 杜教篩可以用來求積性函式的字首和,具體想法是用另外一個函式卷待求函式,如下: ∑i=1n(f∗g)(i)=∑i=1n∑d|if(id)g(d)
PE 439 【莫比烏斯反演】【杜教篩】
垃圾題,坑了我一天QAQ 題目大意:求∑Ni=1∑Nj=1σ(ij),N=1011 ∑Ni=1∑Nj=1σ(ij) =∑Ni=1∑Nj=1∑x|i∑y|jxjy[gcd(x,y==1)] =∑Ni=1∑Nj=1∑x|i∑y|jxjy∑d|x,yμ(d)
杜教篩瞎推 學習筆記【杜教篩】【數學】
空間 ^c turn 感覺 rac blog 預處理 查詢 前綴 杜教篩瞎推【學習筆記】 〇、前言 對於 bzoj3944 來說,和莫比烏斯反演等其他知識關系不大,但是 \(\mu\) 函數在自變量較大情況下的前綴和在反演題中也是會被用到的。 接下來通過 bzoj3944
bzoj 4916: 神犇和蒟蒻【歐拉函數+莫比烏斯函數+杜教篩】
pac pan using 函數 莫比烏斯函數 right for body ace 居然扒到了學長出的題 和3944差不多(?),雖然一眼看上去很可怕但是仔細觀察發現,對於mu來講,答案永遠是1(對於帶平方的,mu值為0,1除外),然後根據歐拉篩的原理,\( \sum_{
bzoj 4176: Lucas的數論【莫比烏斯反演+杜教篩】
+= span ios bool names div display pac stream 首先由這樣一個結論: \[ d(ij)=\sum_{p|i}\sum_{q|j}[gcd(p,q)==1] \] 然後推反演公式: \[ \sum_{i=1}^{n}\sum_{j=
【杜教BM】
解決線性遞推求項 #include <bits/stdc++.h> #define rep(i,a,n) for (long long i=a;i<n;i++) #define per(i,a,n) for (long long i=n-1;i>=a;i
【bzoj4176】Lucas的數論 莫比烏斯反演+杜教篩
wid eight 前綴 .html != brush name load ans 題目描述 去年的Lucas非常喜歡數論題,但是一年以後的Lucas卻不那麽喜歡了。 在整理以前的試題時,發現了這樣一道題目“求Sigma(f(i)),其中1<=i<
【BZOJ3944/4805】Sum/歐拉函數求和 杜教篩
width pri define second pair ring 空格 string pll 【BZOJ3944】Sum Description Input 一共T+1行 第1行為數據組數T(T<=10) 第2~T+1行每行一個非負整數N,代表一組
【bzoj 4176】 Lucas的數論 莫比烏斯反演(杜教篩)
amp short last ++ esc output sig blog tro Description 去年的Lucas非常喜歡數論題,但是一年以後的Lucas卻不那麽喜歡了。 在整理以前的試題時,發現了這樣一道題目“求Sigma(f(i)),其中1&l
【學術篇】分析礦洞 杜教篩
rod mat 應該 針對 int 子集 left 地址 obi 數論什麽的都去死吧! 看著題解我都能化式子用完4頁草紙。。。 另外吐槽一句出題人的拼音學的是真好, 不知道是不是故意的. 其實題解已經寫得挺詳細的了. 我就是提一些出題人覺得太easy沒必要提但是做題還是需要
【XSY2721】求和 杜教篩
ons cpp last 復雜度 log ali ace out arp 題目描述 設\(n=\prod a_i^{p_i}\),那麽定義\(f_d(n)=\prod{(-1)^{p_i}[p_i\leq d]}\)。特別的,\(f_1(n)=\mu(n)\)。 給
【XSY2731】Div 數論 杜教篩 莫比烏斯反演
esp mar 復雜度 時間 莫比烏斯反演 freopen str namespace int 題目大意 定義復數\(a+bi\)為整數\(k\)的約數,當且僅當\(a\)和\(b\)為整數且存在整數\(c\)和\(d\)滿足\((a+bi)(c+di)=k\)。
【模板】杜教篩
print c++ lld lan span main new += style 「luogu4213」Sum : 1 #include<bits/stdc++.h> 2 #define ll long long 3 #define R register
【bzoj3512】DZY Loves Math IV 杜教篩+記憶化搜索+歐拉函數
-i script 等於 code inpu 給定 names 數據規模 次方 Description 給定n,m,求\(\sum_{i=1}^{n}\sum_{j=1}^{m}\varphi(ij)\)模10^9+7的值。 Input 僅一行,兩個整數n,m。 Outpu