【每日題解 #12】P3312 [SDOI2014]數表
阿新 • • 發佈:2018-08-03
work 自然 在線 單調遞增 sigma 自動 www. 啊啊啊 卷積
啊啊啊我昨天怎麽沒寫題解wwww
補昨日題解。。。
題目鏈接 : https://www.luogu.org/problemnew/show/P3312
也是莫反 我要把fft留到今天寫
【和zyn小可愛約好了 明天不填完坑就請她cafeking哦
表面題意:很明顯了。。。
有一張N*m的數表,其第i行第j列(1 < =i < =n,1 < =j < =m)的數值為能同時整除i和j的所有自然數之和。
給定a,計算數表中不大於a的數之和。
第一步 : 每個格子裏的那個東西是什麽?
整除i和j的所有自然數之和
↓ ↓
gcd(i, j) 因數和
是 sigma(gcd(i, j))
sigma(x)表示x的因數和
現在的題意:
有一張n * m的數表,給定a,計算數表中不大於a的sigma(gcd(i, j))之和。
蒟蒻認為 看到gcd 又看到計數 就可以往莫反上靠靠了
另 這樣在線做會超時的
由於隨著a變大
變化僅為f[] 中的一些值由零變一
所以把詢問按a排序
每次補齊卷積
詳見代碼work部分
代碼:
幾個要註意的細節【大佬自動無視】:
1)sigma不是單調遞增 所以請排序
2)由於本題取模數十分毒瘤 所以隨便爆int~
3)sigma並不是所有項都符合積性函數性質 所以要O(n ln n)篩
4)now註意上界 a可能很大但用不上
【每日題解 #12】P3312 [SDOI2014]數表