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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习笔记::杜教筛

發布時間:2024/1/17 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记::杜教筛 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

\(0.杜教篩\)
\(杜教篩能解決積性函數前綴和 并且能做到線性以下\)

\(1.狄利克雷卷積\)
\(杜教篩通過狄利克雷卷積降低復雜度\)
\(狄利克雷卷積\)
\((f*g) =\sum_ozvdkddzhkzd{f(d)g(\frac{n}ozvdkddzhkzd)}\)
\(假設我們要求前綴和的函數是f(x)\)
\(那么設\)
\(S(n)=\sum_{i=1}^{n}{f(i)}\)
\(考慮(f*g)的前綴和\)
\(\sum_{i=1}^{n}\sum_{j|i}{f(i)g(\frac{i}{j})}=\sum_{ij\leq{n}}{f(i)g(j)}=\sum_{i=1}^{n}{g(i)*S([\frac{n}{i}])}\)
\(那么我們要求的總和就是\)
\(g(1)S(n)=\sum_{i=1}^{n}{(f*g)}-\sum_{i=2}^{n}{g(i)*S([\frac{n}{i}])}\)
\(后面那個東西可以用分塊和記憶化搜索優化\)
\(就和平常莫比烏斯反演的優化一樣\)
\(狄利克雷卷積可以利用分塊優化\)
$所以重點在于(f*g)的前綴和 $
\(所以我們只要構造一個g(x)使(f*g)的前綴和能夠快速求出來就好了\)
\(例如歐拉函數\phi{(x)} 我們知道\phi*I=id\)
\(那么帶入上面的式子就可以得出\)
\(S(n)=\frac{n*(n+1)}{2}-\sum_{i=2}^{n}{S([\frac{n}{i}])}\)
\(每次把S(n)的結果記憶化一下\)
\(預處理出n^{\frac{2}{3}}的\phi(n)的前綴和復雜度就能做到O(n^{\frac{2}{3}})了\)

轉載于:https://www.cnblogs.com/19992147orz/p/8329297.html

總結

以上是生活随笔為你收集整理的学习笔记::杜教筛的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。