P9308 「DTOI-5」#1f1e33 题解
思路#
没有脑子怎么办,使用纯套路解决这道题。
令
注意到
令
其中:
这样的式子已经可以获得
令
令
这个式子就非常的简洁,可以获得
其中:
只需要计算
容易发现,预处理
可以获得
但实际上在算
具体来说。
枚举
那么对应的
这样就可以直接用前缀和计算。
至此,所有的东西都可以用最多调和计数的复杂度计算。
时间复杂度:
Code#
/*
! 如果没有天赋,那就一直重复
! Created: 2024/05/24 10:38:16
*/
#include <bits/stdc++.h>
using namespace std;
#define fro(i, x, y) for (int i = (x); i <= (y); i++)
#define pre(i, x, y) for (int i = (x); i >= (y); i--)
const int N = 1e6 + 10;
const int mod = 998244353;
using i64 = long long;
int n, ct;
int vs[N], pr[N], mu[N];
i64 sm[N], fm[N], g1[N], g2[N], p1[N], p2[N], d2[N], d3[N], ans;
vector<int> to[N];
signed main() {
ios::sync_with_stdio(0), cin.tie(0);
cin >> n, mu[1] = 1;
fro(i, 2, n) {
if (!vs[i]) pr[++ct] = i, mu[i] = -1;
for (int j = 1; j <= ct && pr[j] * i <= n; j++) {
vs[i * pr[j]] = 1;
if (i % pr[j] == 0) {
mu[i * pr[j]] = 0;
break;
}
mu[i * pr[j]] = -mu[i];
}
}
fro(i, 1, n) {
for (int j = i, k = 1; j <= n; j += i, k++) {
g1[j] += i * mu[k];
g2[j] += i * mu[i];
}
g1[i] = (g1[i] % mod + mod) % mod;
g2[i] = (g2[i] % mod + mod) % mod;
d2[i] = 1ll * i * i % mod;
d3[i] = 1ll * i * d2[i] % mod;
}
fro(i, 1, n) {
for (i64 k = 1, l = i, r = 2 * i; l <= n; l += i, r += i, k++) {
if (r > n) r = n + 1;
p1[l] += g1[i] * (3 * d2[k] - 3 * k);
p1[r] -= g1[i] * (3 * d2[k] - 3 * k);
p2[l] += g1[i] * (2 * d3[k] - 2 * k) * i;
p2[r] -= g1[i] * (2 * d3[k] - 2 * k) * i;
}
}
fro(i, 1, n) {
p1[i] = (p1[i] + p1[i - 1]) % mod;
p2[i] = (p2[i] + p2[i - 1]) % mod;
sm[i] = (p1[i] * i - p2[i]) % mod;
sm[i] = (sm[i] % mod + mod) % mod;
sm[i] = (sm[i] * 166374059) % mod;
}
fro(i, 1, n) {
for (int j = i, k = 1; j <= n; j += i, k++)
(fm[j] += i * g2[i] % mod * sm[k]) %= mod;
cout << fm[i] % mod << " \n"[i == n];
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)