题目 30156

狄利克雷卷积与前缀和

查看题解 ↗GitHub ↗如何评测
题号
30156
时间限制
10000 ms
内存限制
1024 MB
标签
数学数论
来源
Library Checker (yosupo06) - dirichlet_convolution_and_prefix_sums

【题目描述】

有 TT 组测试数据。

给定正整数 NN,定义 QN={⌊Nx⌋ ⁣:x∈Z,1≤x≤N}Q_N=\lbrace {\lfloor {N \over x} \rfloor \colon x \in \mathbb{Z}, 1 \leq x \leq N} \rbrace。

将 $ Q_N $ 中的元素按升序排列,得到的序列记为 (a0,a1,…,ak−1)(a_0,a_1,\ldots,a_{k-1})。

对于序列 $ f, g \colon \mathbb{N} \to \mathbb{Z} $,定义到每个 $ x \in Q_N $ 为止的累积和(前缀和)为

fx=∑n=1xf(n),gx=∑n=1xg(n). f_x = \sum_{n=1}^x f(n), \\ g_x = \sum_{n=1}^x g(n).

在此基础上,对由

hx=∑n=1x∑ij=nf(i)g(j) mod 998244353 h_x = \sum_{n=1}^x \sum_{ij = n} f(i)g(j) \bmod 998244353
定义的狄利克雷卷积 $ h=f * g $,求出到每个 $ x \in Q_N $ 为止的累积和。

【输入】

文本
$T$
$case_1$
$\vdots$
$case_T$

每组测试数据按如下格式给出。

文本
$N$
$f_{a_0}$ $f_{a_1}$ $\ldots$ $f_{a_{k-1}}$
$g_{a_0}$ $g_{a_1}$ $\ldots$ $g_{a_{k-1}}$

【输出】

文本
$h_{a_0}$ $h_{a_1}$ $\ldots$ $h_{a_{k-1}}$

【输入样例】

文本
1
10
900438954 64058583 6797783 744374928 664936316
581974831 124314739 271644977 165153518 199742098

【输出样例】

文本
771200748 228317628 604103983 124229389 494883461

【数据范围】

  • 1≤N≤10000000000001 \leq N \leq 1000000000000
  • 1≤fx,gx<9982443531 \leq f_x,g_x < 998244353
  • 若 T>1T>1,则 T=10000T=10000,且对每个 N=1,2,…,10000N=1,2,\ldots,10000 恰好有一组测试数据。

【来源】

Library Checker(yosupo06) dirichlet_convolution_and_prefix_sums

数据下载

题目 30156 的公开数据

正在读取文件列表…

常用命令

题目 30156 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。