日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模板:杜教筛(莫比乌斯反演、数论)

發(fā)布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模板:杜教筛(莫比乌斯反演、数论) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

所謂杜教篩,就是dms教給我們的篩

(逃)

前言

與其說算法,不如說是技巧。
可以在低于線性的時間復(fù)雜度(準確的說是 O(n23)O(n^{\frac{2}{3}})O(n32?))內(nèi)完成對積性函數(shù)的前綴和計算。

解析

考慮求函數(shù) fff 的前綴和:
S(n)=∑i=1nf(i)S(n)=\sum_{i=1}^nf(i)S(n)=i=1n?f(i)
尋找另一個函數(shù) ggg,設(shè) h=f?gh=f*gh=f?g,那么有:
∑i=1nh(i)=∑i=1n∑d∣ig(d)f(id)=∑d=1ng(d)∑i=1?nd?f(i)=∑d=1ng(d)S(?nd?)\sum_{i=1}^nh(i)=\sum_{i=1}^n\sum_{d|i}g(d)f(\frac i d)\\=\sum_{d=1}^ng(d)\sum_{i=1}^{\lfloor\frac n d\rfloor}f(i)\\=\sum_{d=1}^ng(d)S(\lfloor\dfrac n d\rfloor)i=1n?h(i)=i=1n?di?g(d)f(di?)=d=1n?g(d)i=1?dn???f(i)=d=1n?g(d)S(?dn??)
嘗試湊出 S(n)S(n)S(n):
g(1)S(n)=∑d=1ng(d)S(?nd?)?∑d=2ng(d)S(?nd?)=∑d=1nh(d)?∑d=2ng(d)S(?nd?)g(1)S(n)=\sum_{d=1}^ng(d)S(\lfloor\dfrac n d\rfloor)-\sum_{d=2}^ng(d)S(\lfloor\dfrac n d\rfloor)\\=\sum_{d=1}^nh(d)-\sum_{d=2}^ng(d)S(\lfloor\dfrac n d\rfloor)g(1)S(n)=d=1n?g(d)S(?dn??)?d=2n?g(d)S(?dn??)=d=1n?h(d)?d=2n?g(d)S(?dn??)
后面的 SSS 就可以遞歸求解了。

時間復(fù)雜度

按照上面的式子,可以寫出時間復(fù)雜度的遞推式:
T(n)=O(n)+∑i=2n(T(i)+T(ni))T(n)=O(\sqrt n)+\sum_{i=2}^{\sqrt n}(T(i)+T(\frac n i))T(n)=O(n?)+i=2n??(T(i)+T(in?))
由于再往下遞歸就是高階小量,我們只需要展開一層:
T(n)=O(n)+∑i=2n(O(i)+O(ni))T(n)=O(\sqrt n)+\sum_{i=2}^{\sqrt n}(O(\sqrt i)+O(\sqrt \frac n i))T(n)=O(n?)+i=2n??(O(i?)+O(in??))
由于 O(i)+O(ni)≥O(2n)=O(n14)O(\sqrt i)+O(\sqrt \frac n i)\ge O(2\sqrt{\sqrt n})=O(n^{\frac 1 4})O(i?)+O(in??)O(2n??)=O(n41?),所以總的復(fù)雜度大概是 O(n34)O(n^{\frac 3 4})O(n43?)

考慮先用線性篩預(yù)處理出一部分前綴和。
由于算法本身根號分治就有 O(n)O(\sqrt n)O(n?),所以不妨設(shè)預(yù)處理的范圍 m>nm>\sqrt nm>n?
那么時間復(fù)雜度就變成了:
T(n)=O(m)+O(n)+∑i=2?nm?T(?ni?)=O(m)+O(n)+∑i=2?nm?O(?ni?)=O(m)+O(n)+∫0nmnx=O(m)+O(n)+f(nm)(f(x)=nx)=O(m)+O(n)+O(nm)≥O(n23)T(n)=O(m)+O(\sqrt n)+\sum_{i=2}^{\lfloor\frac n m\rfloor}T(\lfloor\frac n i\rfloor)\\=O(m)+O(\sqrt n)+\sum_{i=2}^{\lfloor\frac n m\rfloor}O(\sqrt{\lfloor\frac n i\rfloor})\\=O(m)+O(\sqrt n)+\int_0^{\frac n m}\sqrt{\frac n x}\\=O(m)+O(\sqrt n)+f(\frac n m)(f(x)=\sqrt{nx})\\=O(m)+O(\sqrt n)+O(\frac{n}{\sqrt m})\\\ge O(n^{\frac 2 3})T(n)=O(m)+O(n?)+i=2?mn???T(?in??)=O(m)+O(n?)+i=2?mn???O(?in???)=O(m)+O(n?)+0mn??xn??=O(m)+O(n?)+f(mn?)(f(x)=nx?)=O(m)+O(n?)+O(m?n?)O(n32?)
當(dāng) m=n23m=n^\frac 2 3m=n32? 時取等。

應(yīng)用

如何使用杜教篩呢?

舉個例子:計算 ∑i=1nμ(i)\sum_{i=1}^n\mu(i)i=1n?μ(i)
我們把剛才的核心式子拿下來:

g(1)S(n)=∑d=1nh(d)?∑d=2ng(d)S(?nd?)g(1)S(n)=\sum_{d=1}^nh(d)-\sum_{d=2}^ng(d)S(\lfloor\dfrac n d\rfloor)g(1)S(n)=d=1n?h(d)?d=2n?g(d)S(?dn??)
首先,我們需要使 ∑d=1nh(d)\sum_{d=1}^nh(d)d=1n?h(d) 可以很容易的求出來,不然就沒有意義了。
同時,我們最好也能讓 ggg 函數(shù)簡單一些。
想到:μ?1=e\mu*1=eμ?1=e
g=1,h=eg=1,h=eg=1,h=e,就很好的滿足了我們的要求。
式子變成:
S(n)=1?∑d=2nS(?nd?)S(n)=1-\sum_{d=2}^nS(\lfloor\dfrac n d\rfloor)S(n)=1?d=2n?S(?dn??)
非常簡潔,直接求解即可。
實現(xiàn)上,需要開一個 map 或者哈希表進行記憶化。

代碼

ll getmu(int n){if(n<=w) return sum1[n];if(mp1.count(n)) return mp1[n];ll ans=1;for(ll l=2,r;l<=n;l=r+1){assert(n/l);r=n/(n/l);ans-=(r-l+1)*getmu(n/l);}return mp1[n]=ans; }

總結(jié)

以上是生活随笔為你收集整理的模板:杜教筛(莫比乌斯反演、数论)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本精品一区视频 | av超碰在线观看 | 国产片天天弄 | 国产成人福利视频 | 久久蜜桃视频 | 天天操天天射天天舔 | 欧美另类视频在线观看 | 国产成人麻豆免费观看 | 中文字幕一区二区三区在线不卡 | 久久这里有精品视频 | 久久久中文网 | 成人一区二区电影 | 色狠狠操 | 国产不卡视频 | 朝桐光一区二区 | jizzjizz免费| www精品一区二区三区 | 欧美精产国品一二三 | 亚州a级片| aa在线| 4hu最新网址 | 黄视频免费在线观看 | 三上悠亚 在线观看 | www视频在线观看网站 | 99热在线免费观看 | 高清国产在线 | 午夜成年视频 | 久久一区二区三区四区五区 | 欧美精品黄 | av网址在线看 | 就操网 | 亚洲免费视频网站 | 人人爱人人插 | 国产精品热 | 日本在线免费 | 黑人巨大国产9丨视频 | 欧美福利小视频 | 亚洲第六页| 亚洲综合一二三区 | 久草手机在线视频 | 黄色精品网站 | 麻豆精品免费观看 | 麻豆一区产品精品蜜桃的特点 | 精品丰满人妻无套内射 | 色www国产亚洲阿娇 自拍一区在线 | 久久伊人影视 | 欧美日韩123 | 亚洲视频高清 | 夫妻毛片 | juliaann第一次和老师 | 精品国产一二区 | 自拍偷拍激情视频 | 国产又粗又黄又爽又硬 | 超碰97av| 国产一区二区三区视频免费在线观看 | 精品动漫一区 | 国产九九九精品 | 人人爽人人做 | 国产永久在线 | 少妇人妻丰满做爰xxx | a级国产毛片 | 久久精品久久久精品美女 | 黄色一级视频在线观看 | 黑人一级大毛片 | 色玖玖| 黄色成人免费观看 | 亚洲天堂网在线视频 | 国产一二 | 久久精品69 | 免费黄色一级视频 | 免费看的黄色录像 | 96超碰在线 | 银娇在线观看 | 夜夜嗨av禁果av粉嫩avhd | 欧美午夜精品一区二区三区 | 91成人短视频 | 国产精品视频久久久久 | 重囗味sm一区二区三区 | 成人毛片18女人毛片 | 久久99精品久久久 | 久久久香蕉网 | 黄片毛片在线 | 国产高潮呻吟久久 | 国产免费一区二区三区 | 老熟妇仑乱一区二区视频 | 亚洲成熟毛多妇女av毛片 | 亚洲国产精品成人 | 人妻 日韩精品 中文字幕 | 中文字幕免费在线播放 | 粉色视频免费观看 | 福利视频一区二区三区 | 奇米婷婷| 小黄网站在线观看 | 手机在线永久免费观看av片 | 美女被男人桶出白浆喷水 | 国产极品粉嫩 | 日韩第一视频 | 日日操日日操 | 久久99精品久久久久久国产越南 |