冪數 !
#6222. 冪數 !(加強版) - Problem - LibreOJ (loj.ac)
轉寫為 \(a^2b^3\) 要求 \(b\) 沒有平方因子,這樣是雙射對應。那麼即求
後面那個大根號可以整除分塊?轉化為求 \(\mu^2(i)\) 的字首和。
甚至還能整除分塊。
約數函式(單點)
一種 \(O(n^{1/3}/\ln n)\) 的求約數函式方法:首先除去所有 \(\leq n^{1/3}\) 的質因子。那麼剩下要麼是一個質數、一個質數的平方、兩個質數的乘積。前兩個都可以判斷,最後一個不關心具體怎麼分解。
約數函式(DIVCNT1)
DIVCNT1 - Counting Divisors - 洛谷 | 電腦科學教育新生態 (luogu.com.cn)
列舉每個約數計算貢獻。相當於求反比例函式下整點個數。
更快的字首和計算:先暴力計算 \(\leq n^{1/3}\) 的約數的貢獻。剩下的用皮克定理擬合,將 \(y\leq n^{1/2}\) 的部分劃分為很多梯形,需要滿足梯形中沒有多餘整點,證明有 \(O(n^{1/3})\) 段。需要二分一個新的斜率去擬合,說是使用 SB 樹二分。
what?
線性篩自然數冪(i^m)
在每個質數 \(p\) 處算 \(p^m\),然後利用它是完全積性函式的性質做線性篩。由質數分佈密度可知是線性的。
線性篩自然數冪(i^i)
\(p^{px}\) 可以在質數點處光速冪一下。注意到只有 \(\leq n^{1/2}\) 的質數可能需要用。這部分甚至不足線性。
\((x^x)^p\) 在 \(p\) 列舉到下一個質數時,觀察差,發現是 \(O(\log \frac{n}{x})\) 的。所以是 \(\sum_{x=1}^n\log \frac{n}{x}\)。竟然是線性的。
也就是說
草
Min_25 篩不會但是要學
洲閣篩也不會但是要學
這中間有好多個題都沒聽
後面全掉線了,nm
OI-Wiki 或者歷史上的今天。
[Project Euler 530] GCD of Divisors
GCD of Divisors
給定 \(f(n)=\sum_{d|n}\gcd(d,n/d)\) 的字首和 \(F(n)\),\(n=10^{15}\)。
直接暴力,用 \(\sqrt n\) 求 \(D(n)\)(約數函式字首和),積分結果是對的。
[CF571E] Geometric Progressions
Geometric Progressions - 洛谷 | 電腦科學教育新生態 (luogu.com.cn)
只需考慮每個質因子的指數。注意,下標可能不同。所以有個 exgcd 過程。
寫這個題
[LOJ6686] Stupid GCD
#6686. Stupid GCD - Problem - LibreOJ (loj.ac)
下面可能是錯的,不知道哪一步的問題。
可以整除分塊。
特判最後一項
說說如何特判最後一項
可以根號。
說對於同一個 \(r\),那個 \(\gcd\) 有迴圈節。然後有更簡單的做法。然後為什麼有杜教篩部分?要求 \(\varphi\) 和 \(\varphi\cdot Id\) 的字首和,不知道為什麼。?
杜教篩相當於做除法。
[POI2002] 超級馬
\(n\leq 10^6, |P|, |Q|\leq 10^9\)。
整係數:輾轉相除直到只剩一個向量的第一維非零。然後可以裴蜀定理。
非負整數:可以選出三個向量組成銳角三角形,然後不會了,
[集訓隊作業2018] 石像
【集訓隊作業2018】石像 - 題目 - Universal Online Judge (uoj.ac)
\(n\) 太小,考慮狀壓拓撲序,處理出有恰好 \(x\) 種本質不同權值的方案數。還是預處理什麼東西,不清楚。
[集訓隊作業2018] 人類的本質
【集訓隊作業2018】人類的本質 - 題目 - Universal Online Judge (uoj.ac)
令 \(y_j=i/\gcd(i, x_j)\),則
\(\varphi(y)\) 計算了有多少個 \(x\) 貢獻給 \(y\)。這個計算過程很傻逼的不抄了(提示:需要用到 \(\mu*Id=\varphi\))。
服了,這是積性函式。
所以 \(f(p^c)\) 可以被快速計算,後面就是篩。
[CF1770F] Koxia and Sequence
洛谷題解寫的好啊!!!至於花花的做法沒聽懂
[JROI-4] 少女幻葬
P8322 『JROI-4』少女幻葬 - 洛谷 | 電腦科學教育新生態 (luogu.com.cn)
\(f(i, j)\) 表示當前這個數是 \(j\),它與前面那個的數 \(\gcd=i\)。注意只有 \(O(nm\log m)\) 個 \(f\)。
\(g(i, j)\) 表示當前這個數是 \(j\),它要求與後面那個數的 \(\gcd=i\)。注意只有 \(O(nm\log m)\) 個 \(g\)。
(k)-i-(j)
對 \(B\) 做兩次迪利克雷字首和,第一次求 \(C\),第二次求 \(A\)。迪利克雷字首和複雜度 \(O(m\log\log m)\)。
-k-(j)-i-
有個更牛的,因為是 \(\gcd()=1\),相當於質因子集合不交。變成集合冪級數求解。比迪利克雷字首和還牛。複雜度有很多個數不勝數的 \(\log\),但是是複合的。
[Hangzhou22I] Guess Cycle Length
隨機撒 \(10^3\) 個點,取節點編號最大值,期望大小為 \(n_0=\frac{10^3}{10^3+1}n\)。也就是說 \(n-n_0\) 期望是 \(10^6\) 的樣子。撒完點之後,走 \(10^3\) 步,記下 \(10^3\) 個節點編號,然後走 \(n_0-10^3\) 步,然後一次走 \(10^3\) 步,期望 \(10^3\) 步後能走回剛才記下的編號。
基於值域預處理的快速 GCD
P5435 基於值域預處理的快速 GCD - 洛谷 | 電腦科學教育新生態 (luogu.com.cn)
\(B:=\sqrt V\)。預處理 \(\gcd[i\leq B][j\leq B]\),可以 \(O(V)\)。
對所有 \(\leq V\) 的數,要麼是
- 質數;
- 被分解成若干個互質的 \(\leq B\) 的數。
以 \(x=a_1a_2a_3, y\) 為例,\(a_1, a_2, a_3\) 兩兩互質,那麼互不影響,直接寫
但是分解的項數不能多。考慮怎麼分解。令 \(x=\prod_{i=1}^kp_i\),\(p\) 單調不降。
- \(p_k>B\),\((p_k, x/p_k)\) 即可。
- 找一個字首積 \(s_{i-1}\) 滿足 \(s_{i-1}<B, s_i>B\),那麼 \((s_{i-1}, p_i, x/s_i)\) 為所求。
這個東西還是帶了一個 \(O(\log V)\)。更猛的是,你找一個 \(x\) 的最小的質因子 \(p\),那麼 \(x/p\) 的分解方案的最小的數乘上 \(p\) 就是 \(x\) 的分解。
事實上我先做 \(O(d)\) 次輾轉相除,將問題規模縮小至 \(O(V/2^d)\),也是可以的。