Loading

08.04

\(\newcommand{\d}[2]{\left \lfloor \frac{#1}{#2} \right \rfloor} \newcommand{\D} \displaystyle\)

loj6222

https://yhx-12243.github.io/OI-transit/records/loj6221%3Bloj6222.html

PN 的总数是 \(\displaystyle \sum_{i=1}^{\sqrt[3]{n}} \mu^2(i) \sqrt{\d{n}{i^3}}\)\(\D \sqrt{\d{n}{i^3}}\) 只有 \(O(n^{1/5})\) 个(考虑分 \(i \leq n^{1/5}\)\(i > n^{1/5}\) 考虑),因此整除分块的复杂度是完全可接受的。

那么只剩 \(\sum \mu^2(i)\),是个很典的问题。组合意义就是没有平方因子的数,因此用 \(\mu\) 函数容斥,很容易得到 \(\D \sum_{i=1}^n \mu^2(i) = \sum_{i=0}^{\sqrt{n}} \mu(i) \d{n}{i^2}\),整除分块并线性筛处理。

接着考虑第二问。

仍然整除分块,但是这次要求的是 \(\D \sum_{i=1}^n \mu^2(i) i^3\)。将其拆成 \(\D \sum_{i=1}^n \sum_{d^2\mid i} \mu(d) i^k = \sum_{d=1}^{\sqrt{n}} \mu(d) d^{2k} \sum_{d^2 \mid i} (i/d^2)^k = \sum_{d=1}^{\sqrt{n}} \mu(d) d^{2k} S_k(\d{n}{d^2})\)

预处理一下 \(\mu(d) d^{2k}\) 的前缀和就行了。

PN 筛

AT_kenta1_2017_f

\(A^{A^{A^{A^{\dots}}}} \bmod \text{lcm}(M, \varphi(M))\)

原。

Project Euler 530

\[\begin{aligned} & \sum_{i=1}^n \sum_{d|i} \gcd(d, i/d) \\ = & \sum_{d=1}^n d \sum_{i=1}^{n/d^2} \sum_{j \mid i} [j \perp i/j] \\ = & \sum_{d=1}^n d \sum_{i=1}^{n/d^2} \sum_{j \mid i} \sum_{p \mid j, p \mid i/j} \mu(p) \\ = & \sum_{d=1}^n d \sum_{p=1}^{n/d^2} \mu(p) \sum_{i=1}^{n/d^2p^2} \sum_{j \mid i} 1 \\ = & \sum_{T=1}^n \sum_{d \mid T} d \ \mu(T/d) \sum_{i=1}^{n/T^2} \sigma_0(i) \\ = & \sum_{T=1}^{\sqrt{n}} \varphi(T) S_{\sigma_0}(n/T^2) \end{aligned} \]

后面整除分块,前面线性筛。

至于快速求后面单点值,\(\D \sum_{i=1}^n \sigma_0(i) = \sum_{i=1}^n \d{n}{i}\),又可以整除分块做。

复杂度 \(\D \sum_{i=1}^{n^{1/2}} O(\sqrt{n/i^2}) = O(\sqrt{n} \ln \sqrt{n})\)

\(p\) 的上限从 \(n/d^2\) 变成 \(n/d\) 那一步很厉害啊,构造出了 \(\text{id} * \mu\) 的卷积,不知道是怎么想到的。

DIVCNT1

还好。

大致是分数拟合 \(n/i\) 这个函数,用分数夹逼算下方面积。

loj6686

抄一下 Siyuan 的社论。

\(\sqrt[3]{i}\) 逐块处理

\[\begin{aligned} \sum_{a=1}^{\sqrt[3]{n}} \sum_{i=a^3}^{\min((a+1)^3-1, n)} \gcd(a, i) \end{aligned} \]

CF581E

答案一定形如 \(kx+b\),用 exCRT 逐个质因子逐个式子合并,再把整体合并起来。

细节极多。

UOJ426

首先考虑后面限制大小关系那部分。需要求不同的数值恰有 \(k\) 种的方案数。于是状压 dp,每次找到所有可以作为下一层的点枚举子集加入。

接着考虑前面。设 \(f(d) = \sigma_0(d^3)^3, g = f * \mu\),则所求为 \(\D \sum_{x_1} \sum_{x_2} \cdots \sum_{x_n} f(\gcd(x_1, x_2 \cdots x_n)) = \sum_{x_1} \sum_{x_2} \cdots \sum_{x_n} \sum_{d|x1, x2, \cdots, x_n} g(d)\),相当于 \(g(d)\) 乘上后面部分值域 \(\D \d{n}{d}\) 的答案,后者可以通过组合数计算。至于前面,\(f(p)\) 是项数很少的多项式,可以用【不会的筛法】计算。

UOJ?

P8322

gym104090I

可以进行 BSGS,设步长为 \(B\),先走 \(B\)\(1\),再走很多次 \(B\) 到遇到走过的点为止。

\(\sqrt{n}\) 次太多了。先随机走很多遍,取最大下标 \(m\),对 \(n-m\) 跑 BSGS 就行了。

P5435

题解区都告诉我们有方法把 \(A\) 分解成三个要么大小不超过 \(\sqrt{A}\) 要么为素数的数。方法是找到 \(A\) 的最小素因子 \(p\),分解 \(A/p\),再把 \(p\) 乘到分解结果中最小的数上。

那么现在要求 \(\gcd(u, v)\),设 \(d_1=\gcd(u_1, v)\),将 \(v\) 除掉 \(d_1\) 继续做,把三个 \(t\) 相乘即为 \(\gcd(u, v)\)。当 \(u_i\) 为素数时 \(\gcd\) 是显然的,否则预处理 \(\sqrt{V} \times \sqrt{V}\)\(\gcd\),线性筛找最小素因子的复杂度也是线性,总复杂度 \(O(V)-O(1)\)

posted @ 2024-08-04 17:04  purplevine  阅读(7)  评论(0编辑  收藏  举报