1 条题解
-
0
自动搬运
来自洛谷,原作者为

CYJian
今日はこっちの地方はどしゃぶりの晴天でした,昨日もずっと暇で一日満喫してました搬运于
2025-08-24 22:18:43,当前版本为作者最后更新于2020-03-21 15:28:22,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
搬运如果这个加强版有什么问题请私信戳我。
这个题推柿子的部分较为简单,就简单写写吧。
$$\sum_{i=1}^{n}\sum_{j=1}^{n} (i+j)^k \mu^2((i,j))(i,j) $$$$\sum_{d=1}^{n}\mu^2(d)d^{k+1}\sum_{i=1}^{n/d}\sum_{j=1}^{n/d}(i+j)^k[(i,j)=1] $$$$\sum_{d=1}^{n}\mu^2(d)d^{k+1}\sum_{t=1}^{n/d}\mu(t)t^k\sum_{i=1}^{n/td}\sum_{j=1}^{n/td} (i+j)^k $$令 。
$$\sum_{d=1}^{n}\sum_{t=1}^{n/d}t^kd^{k+1}\mu(t)\mu^2(d)S(\frac{n}{td}) $$令 :
$$\sum_{T=1}^{n}T^kS(\frac{n}T)\sum_{d|T}d\mu^2(d)\mu(\frac{T}{d}) $$
然后考虑快速预处理需要的东西:
先考虑快速求 :
令 ,。
则有:$S(n) = \sum_{i=n+1}^{2n}F(i)-\sum_{i=1}^{n}F(i)=G(2n)-2G(n)$。
自然数 次幂可以 用欧拉筛筛出来。
然后一次前缀和求 之后,再做前缀和就能求 了。
再考虑 :由于是一堆积性函数的狄利克雷卷积的形式,则 也一定是积性函数。
考虑欧拉筛筛中 时,枚举到的质因数是 。从 函数着手考虑,则讨论 在 中的最高次幂因子:假设 且有 :
根据积性函数性质,则有:。
讨论一下 的取值:
- ,即 的取值一定为 。
- ,则 。
- ,则 $f(p^2) = 1 \mu^2(1) \mu(p^2) + p \mu^2(p) \mu(p) + p^2 \mu^2(p^2) \mu(1)=-p$。
- ,由于鸽笼原理,此时 和 中至少有一个能被 整除,则那一个的 的值为 。所以此时 。
然后就可以通过判断 的数值来计算 了。
:
const int MAXN = 20000010; inline uit fsp(uit x, int k) { uit s = 1; while(k) { if(k & 1) s *= x; x *= x, k >>= 1; } return s; } int tot; int pri[MAXN / 10]; bitset<MAXN>chk; uit f[MAXN]; uit F[MAXN]; inline void Sieve(int n, int k) { f[1] = F[1] = 1; for(int i = 2; i <= n; i++) { if(!chk[i]) pri[++tot] = i, f[i] = i - 1; for(int j = 1; j <= tot; j++) { if(i * pri[j] > n) break; int p = i * pri[j]; chk[p] = 1; F[p] = F[i] * F[pri[j]]; if(i % pri[j] == 0) { int q = i / pri[j]; if(q % pri[j]) f[p] = -pri[j] * f[q]; break; } f[p] = f[i] * (pri[j] - 1); } } for(int i = 2; i <= n; i++) f[i] = f[i - 1] + f[i] * F[i], F[i] += F[i - 1]; for(int i = 2; i <= n; i++) F[i] += F[i - 1]; } inline uit Calc(int n) { return F[n << 1] - (F[n] << 1); } int main() { #ifdef LOCAL FILE(""); #endif int Case = ri, N = ri, k = ri; Sieve(N << 1, k); while(Case--) { uit res = 0; int n = ri; for(int l = 1, r; l <= n; l = r + 1) { r = n / (n / l); res += (f[r] - f[l - 1]) * Calc(n / l); } cout << res << "\n"; } return 0; }
- 1
信息
- ID
- 5253
- 时间
- 500~1500ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者