颓式子小练习
以下全是口胡,不排除推错的可能性。
记号
- \(\mathbb P\):质数集合
- \(\text{minp}(i)\):\(i\) 的最小质因子
- \(p_j\):第 \(j\) 个质数
- \(x\bot y\):\(x,y\) 互质
UOJ-188 Sanrd
\(f(x)\) 即为 \(x\) 质因子分解后的次大因子(可重)。虽然不是积性函数但是和质因子密切相关,考虑魔改 min-25 筛。
显然对于 \(G(n)=\sum^n_{i\in \mathbb P} f(i)\),有 \(G(n)=0\)。
设 \(G_j(n)=\sum_{i=2}^n [\text{minp}(i)\le p_j\lor i\in \mathbb P] f(i)\)。那么考虑从 \(G_{j+1}\to G_j\)。枚举 \(p_j\) 的次数 \(k\),对新加入的数 \(p_j^kx\) 分类:\(>p_j\) 的质数,\(\text{minp}>p_j\) 的合数,以及 \(1\)。
按照套路,\(G_{j+1}(\lfloor n/p_j^k \rfloor)\) 中包含了所有范围内的质数以及范围内 \(\text{minp}>p_j\) 的合数。合数可以精确统计,但是质数统计不到。易知这部分贡献就是质数个数。加上\(1\),可得:
\(S\) 为质数个数,min-25 中顺带完成即可。复杂度 \(O\left(\frac{n^{3/4}}{\log n}\right)\)。
LOJ-572 「LibreOJ Round #11」Misaka Network 与求和
https://www.cnblogs.com/-Wallace-/p/loj572.html
SPOJ-DIVCNT2 Counting Divisors (square)
首先有一个结论作为起步:
略证:考虑唯一分解:\(i=\prod_x p_x^{c_x},j=\prod_x q_x^{d_x}\),那么取 \(p_x=q_y\),\(ij\) 的分解中必有 \(p_x^{c_x+d_y}\)。考虑 \(p_x\) 对 \(\sigma_0(ij)\) 的贡献为 \(c_x+d_y+1\),而由于互质的限制,\(p_x\) 的次数取法只有 \(a\) 中的 \(c_x\) 个,\(b\) 中的 \(d_y\) 个,以及 \(0\)。总贡献为 \(c_x+d_y+1\)。
那么有:
直接枚举 \(ab\) 的值,记为 \(T\)。但是 \(a,b\le n/d\),所以 \(T\le (n/d)^2\)?注意到右边那个整除式子使得 \(>n/d^2\) 的 \(T\) 贡献都为 \(0\)。于是:
预处理 \(\sigma_0\) 的所有整出点的前缀和,杜教筛 \(O(n^{2/3})\) 完成。这样 \(G(n)\) 求解一次的复杂度为 \(O(\sqrt n)\)。我们可以对 \(n/d^2\) 像整除分块一样操作,然而 \(d\le \sqrt n\),如果直接暴力枚举 \(d\),复杂度则是 \(O\left(\int_1^\sqrt n \sqrt{\frac{n}{i^2}}\right)=O(\sqrt n\log n)\)。已经可以通过了。
SPOJ-DIVCNTK Counting Divisors (general)
发现 \(n\le 10^{10}\),数据范围较之前不大。
显然 \(f(i)=\sigma_0(i^k)\) 是积性函数,而 \(\forall p\in \mathbb P\),我们有 \(f(p^c) = ck+1\),为 min-25 筛量身定制。\(O\left(\frac{n^{3/4}}{\log n}\right)\)轻松通过。
事实上这个复杂度看着比较高,但却可以通过 DIVCNT2/3,说明 min-25 筛的效率是值得被信任的。
LOJ-6229 这是一道简单的数学题
这个方法可以用嵌套整除分块实现,复杂度 \(O(n^{3/4})\),对于 \(10^9\) 的数据已可以通过。不过我们观察到 \(\sum_g^n\sum_d^{n/g} \mu(d)d^2\) 和狄利克雷卷积很有关系。根据 LOJ-572 的经验,不妨尝试在这里入手以寻求更优秀的方法。
记 \(h=1*(\mu \cdot \text{id} \cdot \text{id})\),直接枚举 \(D=dg\),那么进一步化简:
也就是说只要实现了 \(h\) 前缀和 \(H\) 的计算就能实现优化。
接下来有两种方法:
- 使用杜教筛:
好题好题妙啊妙啊不wei做 - 按 \(n^{2/3}\) 分治:小的直接线性筛,大的暴力整除分块。可以得到这样复杂度是 \(O(n^{2/3}\log n)\) 的。还是需要筛出较大的 \(\mu\cdot \text{id} \cdot \text{id}\) 的前缀和,一般 min-25 筛会快一些(指 10 倍)。
本文来自博客园,作者:-Wallace-,转载请注明原文链接:https://www.cnblogs.com/-Wallace-/p/tuifei-training.html