lg-math4
【!REPLAY!】
- 字首和最佳化 \(f=g*1\)
可看作 \(n\) 個質因數,做高維字首和
這個例項讓我們知道實際上高維字首和不一定只適用於 0/1
- 高維差分最佳化 \(f=g*\mu\)
由於 \(\mu*1=\epsilon\)
- 例子
Trick1:用莫比烏斯反演就是將 \(f=g*1\)
此時我們可以令 \(f=g*1\) 就可以把函式的複合放到外面。
然後考慮反演 \(f*\mu=g\)
- 例子2
\[\sum_{i=1}^{n}\sum_{j=1}^n\operatorname{lcm}(i,j) \]\(n\le 10^7\)
Trick2:經典拆 lcm、經典列舉 gcd、經典列舉因數、經典調換求和順序(艾弗森法則)
Trick3:\([n=1]=\sum_{d|n}\mu(d)\)
注意整除分塊套整除分塊的複雜度為 \(\mathcal O(n)\)
同時也可以用上面例子1的方法令 \(F=\frac{1}n,F=g*1\)
用 \(g\) 替換後可得:
要快速求出 \(\sum_d g(d)\) 可利用線性篩 \(F*\mu=g\)
可以先乘上 \(n\) 然後化為一個簡單的形式,然後可得出線性篩的做法。
- 例子3
唯一的不同就是 lcm 裡面換掉了,可以考慮轉化問題,不要列舉下標,而是列舉值,乘上出現次數。
- 例子4
Trick4:輾轉相除轉化過大 gcd
【!REPLAY!】 篩討論
- 例子5
Trick5: 偏序關係難處理,化為等於關係,進行遞推
令 \(G(n)=\sum_{i}^{n}\sum_{j}^{n}[\gcd(i,j)+\operatorname{lcm}(i,j)=n]\)
這裡採用列舉 gcd 的方法。
那麼後面這個式子有組合意義。可以篩出質因子數目。
Trick6: 提取公約數儘量去掉限制,注意艾弗森約定的組合意義。
- 基本和組
令 \(D(x)=\{\lfloor x/1\rfloor,\lfloor x/2\rfloor,\dots,\lfloor x/x\rfloor\}\)
透過分類討論 \(\sqrt x\) 得到 \(\mathcal O(|D(x)|)=\mathcal O(\sqrt x)\)
定理 \(D(\lfloor x/a\rfloor)\subset D(x)\)
那麼,計算一個卷積,如果可以知道其中一個函式的字首和,則可以 \(\sqrt n\) 地求出卷積。不過,我們必須求字首和。
- 杜教篩
現在要求 \(f\) 的字首和
我們要找到 \(h=f*g\) ,構造出 \(h,g\) ,必須能 \(\mathcal O(1)\) 求字首和。
即得杜教篩公式。
我們設定一個閾值 \(B=n^{2/3}\) ,小於的時候線性篩,大於的時候杜教篩。
- 神秘 Trick
下面還有兩個神秘拆分
要證明只要證明在質數冪上是一樣的就可以了
- Powerful Number 篩
注:因為對於所有正整數,都可以寫成 \(2k+3\) 的形式
所以可以證明 \(\sigma\) 在質數處為 0 ,又由於積性,可以得到以上結論
最後得出公式是跟杜教篩公式的過程是一樣的。
不過, \(\sigma\) 只在 Powerful Number 處有值,所以其複雜度是 \(\mathcal O(\sqrt n)\) 的。我們可以用展開卷積的方式
解出所有在質數冪的 \(\sigma\) ,就得到了所有 \(\sigma\)
至於 Powerful Number 的個數界,emm
重要性質(怎麼這個時候才寫):積性函式 \(f\) ,必有 \(f(1)=1\)