【總結】積性函式字首和(杜教篩)
前言:
據CCH和LJH說,杜教篩似乎是一個非常套路的東西,幾乎所有的杜教篩的題目推理方式都是一模一樣的(但實測有些推理還是很噁心的)。所以複習杜教篩不需要太多時間,粗略看一遍,留下印象即可。
杜教篩其實是一種簡化運算的推理方式,它的使用條件並不僅限於積性函式(?),只是積性函式可以將複雜度進一步優化。
例題:求尤拉函式字首和
因為杜教篩是一種推理方式,所以直接給出例題反而容易上手。
尤拉函式的定義這裡就不再贅述。
需要知道的是尤拉函式
形如
下面開始推導:
那麼
現在我們改變列舉變數:我們列舉
這時候就能夠驚訝地發現:
如果設
那麼就可以寫為:
我們成功地將問題化簡了!為了方便起見,我們將這個
接下來,只需要按照根據
顯然這還不夠優秀,那麼針對與積性函式,我們還有一個小優化:
將
相關推薦
【總結】積性函式字首和(杜教篩)
前言: 據CCH和LJH說,杜教篩似乎是一個非常套路的東西,幾乎所有的杜教篩的題目推理方式都是一模一樣的(但實測有些推理還是很噁心的)。所以複習杜教篩不需要太多時間,粗略看一遍,留下印象即可。 杜教篩其實是一種簡化運算的推理方式,它的使用條件並不僅限於積
積性函式字首和問題
1. 求前n個正整數的約數之和 即 . 解: 或 需要說明的是 是一種常見的表示形式。 當 時, 顯然只有個取值,當 時, ,顯然也只有個取值。當 = k (常數) 時,i的取值區間是 ,因此可以用 複雜度求解。 code: #inclu
BZOJ 3944 Sum (積性函式字首和杜教篩)
#include<bits/stdc++.h> using namespace std; #define debug puts("YES"); #define rep(x,y,z) for(int (x)=(y);(x)<(z);(x)++) #def
2018ACM-ICPC南京賽區網路賽: J. Sum(積性函式字首和)
J. Sum A square-free integer is an integer which is indivisible by any square number except 11. For example, 6 = 2 \cdot 36=2⋅3 is squa
[莫比烏斯反演 積性函式字首和] BZOJ 2693 jzptab
2154的加強版 可以發現 由莫比烏斯函式組成的積性函式 在 prime[j]|i 轉移時 多出來的u(p*p*a)=0部分不記的 只需考慮F(x) 中的x 乘上了p對之前的影響 #inclu
積性函式字首和求和的方法
將近一週的時間內,我專門學習了數論中有關積性函式求字首和的一些方法,在被虐心的數論折磨得痛不欲生之後(然而我明明已經逃離了數學系為什麼還要被數學虐啊摔!!),我終於基本掌握了這一方法,所以在這裡記錄一下基本的思想並放上一些題解,以便日後回顧。 一、基本
51nod 1244 莫比烏斯函式之和(積性函式字首和)
關於積性函數前綴和的問題,可以關注糖老師的博客 http://blog.csdn.net/skywalkert/article/details/50500009 推導不寫了 結論是M(n)=∑ni=1u(i) M(n)=1−∑ni=2M(ni) 直接遞
【總結】遊戲框架與架構設計(Unity為例)
單機 業務 github 事件 概念 lec 集合 架構模式 wid 使用框架開發遊戲 優點:耦合性低,重用性高,部署快,可維護性高,方便管理。提高開發效率,降低開發難度 缺點:增加了系統結構和實現的復雜性,需要額外花費精力維護,不適合小型程序,易影響運行效率 常見
【bzoj 4176】 Lucas的數論 莫比烏斯反演(杜教篩)
amp short last ++ esc output sig blog tro Description 去年的Lucas非常喜歡數論題,但是一年以後的Lucas卻不那麽喜歡了。 在整理以前的試題時,發現了這樣一道題目“求Sigma(f(i)),其中1&l
【BZOJ3512】DZY Loves Math IV(杜教篩)
【BZOJ3512】DZY Loves Math IV(杜教篩) 題面 BZOJ 求 \[\sum_{i=1}^n\sum_{j=1}^m\varphi(ij)\] 其中\(n\le 10^5,m\le 10^9\)。 題解 這個資料範圍很有意思。 \(n\)的值足夠小,所以我們可以直接暴力列舉\(n
[模板] 積性函數 && 杜教篩
n) play amp inline 固定 gcd math clas 卷積 積性函數 數論函數指的是定義在正整數集上的實或復函數. 積性函數指的是當 \((a,b)=1\) 時, 滿足 \(f(a*b)=f(a)*f(b)\) 的數論函數. 完全積性函數指的是在任何情況下
【hdu 5728 PowMod】【數論】【尤拉函式】【尤拉降冪遞迴取模】【尤拉積性函式】
【連結】 http://acm.hdu.edu.cn/showproblem.php?pid=5728 【題意】 n是無平方因子的數 定義k=∑mi=1φ(i∗n) mod 1000000007,求K^k^k^k......%p 【思路】 先尤拉性質求出k
【hdu 5728 PowMod】【數論】【尤拉函式】【尤拉降冪遞迴取模】【尤拉積性函式】
【連結】 【題意】 n是無平方因子的數 定義k=∑mi=1φ(i∗n) mod 1000000007,求K^k^k^k......%p 【思路】 先尤拉性質求出k,再用尤拉降冪,A^B=A^B%phi(C)+phi(C) (mod C)求出答案 ∑(i=1~
【leetcode】53. 最大子序和(Maximum Subarray)
變量 最終 code res com 定義 最大的 array ray 解題思路: 定義兩個變量res和curSum,其中res保存最終要返回的結果,即最大的子數組之和,curSum初始值為0,每遍歷一個數字num,比較curSum + num和num中的較大值存入cur
【leetcode931】 下降路徑最小和(基礎DP)
題目: 一個矩陣,從上到下走一遍,只允許走相鄰的列,然後每一個位置有一個權值,求經過路徑的最小權值和。 思路: 基礎DP了,dp[i][j]表示到達位置(i,j)所需要的花費的權值。那麼他可以由三種狀態轉化而來。 (i-1,j-1),(i-1,j),(i-1,j+1)就是上一列與其相
【51nod】尤拉函式之和(數論,杜教篩)
文章目錄 題目 分析 一個性質 嘗試遞推 分塊 打表 線性篩尤拉函式 一個性質 線性篩 程式碼 題目 12
【Log】android手機除錯AP側(main、kernel)、BP側和ANR、hcidump的log抓取方法
AP的log抓取 主要有main log和kernel log兩種。 1、Main log 註釋: Main log為應用程式的log,也是最常用的一種。提交功能性bug時,一般都要提供Main log。 方法1: 在手機後臺裡開一個程
2018.12.07【LOJ114】k 大異或和(線性基)(高斯消元)
傳送門 解析: 先求一個線性基,然後高斯消元解線性空間,然後基本上就是亂搞把第 k k k
[HDU 5728] PowMod (尤拉函式的積性+尤拉公式降冪+尤拉篩)
HDU - 5728 求 K=∑i=1mϕ(i∗n)mod1000000007 其中 n是 square-free number 求 ans=KKKK..modp 先求 K 由於 ϕ(n)是積性函式,所以對於 n的每個素因子可以提出
【String】 常用庫函式系列一(替換(replace),刪除(erase),取子串(substr) )
導航 String:: replace string (1) string& replace (size_t pos, size_t len, const string&a