#P9135. [THUPC 2023 初赛] 快速 LCM 变换

    ID: 8290 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>2023数论O2优化快速傅里叶变换 FFTTHUPC

[THUPC 2023 初赛] 快速 LCM 变换

题目描述

小 I 今天学习了快速最小公倍数变换(Fast Least-Common-Multiple Transform, FLT),于是他想考考你。

给定一个长度为 nn 的正整数序列 r1,r2,,rnr_1,r_2,\cdots,r_n。你需要做以下操作恰好一次:

  • 选择整数 i,ji,j 使得 1i<jn1 \le i < j \le n。在序列末尾加入 (ri+rj)(r_i+r_j),并将 rir_irjr_j 从序列中删除。

可以注意到总共有 n(n1)2\frac{n(n-1)}{2} 种可能的操作,每种操作会得到一个长度为 n1n-1 的序列。

你需要对所有的这 n(n1)2\frac{n(n-1)}{2} 个序列,求出序列中所有元素的最小公倍数,并给出它们的和模 998244353998244353 的值。

输入格式

输入的第一行包含一个正整数 nn,表示序列的长度。接下来一行 nn 个正整数 r1,r2,,rnr_1,r_2,\cdots,r_n,描述初始序列。

输出格式

输出一行一个整数,表示所有序列的最小公倍数的和模 998244353998244353 的值。

3
2 3 4

40

提示

样例解释 1

  • i=1,j=2i=1,j=2 时,得到的序列为 {4,5}\{4,5\},最小公倍数为 2020
  • i=1,j=3i=1,j=3 时,得到的序列为 {3,6}\{3,6\},最小公倍数为 66
  • i=2,j=3i=2,j=3 时,得到的序列为 {2,7}\{2,7\},最小公倍数为 1414

因此输出为 20+6+14=4020+6+14=40

子任务

对于所有测试数据,$2 \le n \le 5 \times 10^5, 1 \le r_1,r_2,\cdots,r_n \le 10^6$。

题目来源

来自 2023 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2023)初赛。

题解等资源可在 https://github.com/THUSAAC/THUPC2023-Pre 查看。