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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛

發布時間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

去年的Lucas非常喜歡數論題,但是一年以后的Lucas卻不那么喜歡了。

在整理以前的試題時,發現了這樣一道題目“求Sigma(f(i)),其中1<=i<=N”,其中 表示i的約數個數。他現在長大了,題目也變難了。 求如下表達式的值: 其中f(ij)表示ij的約數個數。 他發現答案有點大,只需要輸出模1000000007的值。

輸入

第一行一個整數n。

輸出

一行一個整數ans,表示答案模1000000007的值。

樣例輸入

2

樣例輸出

8


題解

莫比烏斯反演+杜教篩

首先有個神奇的結論:

證明:只考慮質數p,設n=a*p^x,m=b*p^y,那么等式左端p的貢獻顯然為x+y+1;而等式右邊p的貢獻為數對(i,j):(p,1),(p^2,1),...,(p^x,1) , (1,p),(1,p^2),...,(1,p^y) , (1,1),共x+y+1對,因此命題得證。

然后就有:

注意到n/d只有O(√n)種取值,因此我們可以枚舉這些n/d,找出對應的d的范圍,前邊的mu(d)求一下前綴和,后面的sigma,由于n/d/i只有O(√n/d)種取值,因此可以用O(√n/d)的復雜度求出。

由于這里面的n值過大,無法直接維護mu的前綴和,因此需要使用杜教篩的方法,參見 bzoj3944

因此總的時間復雜度貌似是O(n^3/4+n^2/3logn)。

#include <cstdio> #include <map> #define N 1000010 using namespace std; #define mod 1000000007 typedef long long ll; map<ll , ll> f; map<ll , ll>::iterator it; ll m = 1000000 , mu[N] , prime[N] , tot , sum[N]; bool np[N]; ll cal1(ll n) {if(n <= m) return sum[n];it = f.find(n);if(it != f.end()) return it->second;ll ans = 1 , i , last;for(i = 2 ; i <= n ; i = last + 1) last = n / (n / i) , ans = (ans - (last - i + 1) * cal1(n / i) % mod + mod) % mod;return f[n] = ans; } ll cal2(ll n) {ll ans = 0 , i , last;for(i = 1 ; i <= n ; i = last + 1) last = n / (n / i) , ans = (ans + n / i * (last - i + 1)) % mod;return ans * ans % mod; } int main() {ll n , i , j , last , ans = 0;mu[1] = sum[1] = 1;for(i = 2 ; i <= m ; i ++ ){if(!np[i]) mu[i] = -1 , prime[++tot] = i;for(j = 1 ; j <= tot && i * prime[j] <= m ; j ++ ){np[i * prime[j]] = 1;if(i % prime[j] == 0){mu[i * prime[j]] = 0;break;}else mu[i * prime[j]] = -mu[i];}sum[i] = (sum[i - 1] + mu[i] + mod) % mod;}scanf("%lld" , &n);for(i = 1 ; i <= n ; i = last + 1) last = n / (n / i) , ans = (ans + (cal1(last) - cal1(i - 1) + mod) % mod * cal2(n / i)) % mod;printf("%lld\n" , ans);return 0; }

?

轉載于:https://www.cnblogs.com/GXZlegend/p/6999146.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 少妇吹潮| 久草视频免费播放 | 亚洲v日韩v综合v精品v | 99有精品| 播播成人网 | 黄网站在线播放 | 精品国产一区二区三区在线 | 99视频免费在线观看 | 女同视频网站 | 亚洲欧美另类中文字幕 | 久久国产网站 | 久久金品| 亚洲天堂av网 | 国产成人精品免费 | 三级视频网站在线观看 | 中文字幕亚洲欧美日韩 | 老头吃奶性行交 | 欧美熟妇乱码在线一区 | 色狠狠一区二区三区香蕉 | 欧美中文网 | 欧美性猛交xxx乱久交 | 久热精品免费视频 | 日韩三级不卡 | 韩国一级淫片免费看 | 亚洲成人网在线 | 国产乱码精品一区二区三区中文 | 日韩aaaaa| 精品无码久久久久久国产 | 亚洲精品国产一区二区 | 欧美裸体xxxx极品少妇 | 日本特黄一级片 | 永久av在线免费观看 | 亚洲福利一区二区三区 | 538在线精品视频 | 亚洲日本中文字幕 | 亚洲美女久久 | 欧美三级韩国三级日本三斤 | 毛片基地在线观看 | 福利片在线观看 | 国产视频精品在线 | 国产精品自拍一区 | 日韩欧美高清在线观看 | 久久精品a亚洲国产v高清不卡 | 欧美一级二级片 | 色屁屁一区二区三区 | 亚洲涩视频 | 日本一级黄| 轮乱| 久久午夜鲁丝片午夜精品 | 国产乱码一区二区三区播放 | a v视频在线播放 | 国产成年人 | 91视频日本| 黑人无套内谢中国美女 | 浪浪视频在线观看 | 91精品一区二区三区在线观看 | 无码精品国产一区二区三区免费 | 夜夜嗨av一区二区 | 欧洲女女同videos | 麻豆精品自拍 | 国产色在线观看 | 色噜噜狠狠一区二区三区 | 美女午夜影院 | 动漫大乳美女 | 被绑在床强摁做开腿呻吟 | 黄色高清在线观看 | 日韩中文字幕免费 | 日本肉体xxxx裸体137大胆图 | 美女毛片网站 | 国产白浆在线 | 性欧美视频 | 国产精品99久久 | 91麻豆视频 | 日日干夜夜爽 | 丁香花电影在线观看免费高清 | 色妞综合 | 超碰.com | 97av视频在线 | 亚洲国产精品va在线 | 欧美日韩在线免费视频 | 看黄色网址 | 精品无码av一区二区三区不卡 | 国产一级一片免费播放 | 国产毛片久久久久久国产毛片 | 欧美精品一区二区蜜桃 | 免费的毛片视频 | 91免费观看视频 | 五月婷婷一区 | 国产精品久久久久久一区二区 | 黄页在线播放 | 中文永久免费观看 | 热99在线 | 激情久久久 | 欧美第二区 | 成人免费做受小说 | 亚洲精品视频播放 | 神马久久网站 | 狠狠操操 | 91啪国产在线 |