33OJ
登录 注册

#P17689. [IO 2025 #2] 巨型字母

    ID: 20337 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度提高+/省选− 上传者: 标签>线段树2025分治ST 表单调栈

[IO 2025 #2] 巨型字母

题目描述

在顿河畔罗斯托夫的入口,矗立着著名的塔昌卡纪念碑,旁边的巨型字母拼成了这座城市的名字。每个字母都有自己的高度。当地居民热爱信息学竞赛,喜欢研究城市景观中隐藏的数列性质。

考虑一个非空的正整数序列 A=(a1,a2,…,aN)A=(a_1,a_2,\dots,a_N),其中 aia_i 表示纪念碑上第 ii 个字母的高度。

对于任意满足 1≤i≤j≤N1\le i\le j\le N 的下标 i,ji,j,定义:

  • $\operatorname{GCD}(i,j)=\gcd(a_i,a_{i+1},\dots,a_j)$;
  • $\operatorname{Max}(i,j)=\max(a_i,a_{i+1},\dots,a_j)$;
  • $\operatorname{Prod}(i,j)=\operatorname{GCD}(i,j)\cdot\operatorname{Max}(i,j)$。

其中,gcd⁡\gcd 表示这些数的最大公约数。

需要计算的值为

$$F(A)=\sum_{1\le i\le j\le N}\operatorname{Prod}(i,j).$$

请计算 F(A)F(A) 对 1 000 000 0071\,000\,000\,007 取模的结果。

输入格式

第一行包含一个整数 NN(1≤N≤2⋅1051\le N\le2\cdot10^5),表示字母的数量。

第二行包含 NN 个整数 a1,a2,…,aNa_1,a_2,\dots,a_N(1≤ai≤1091\le a_i\le10^9),表示各个字母的高度。

输出格式

输出一个整数,表示 F(A)F(A) 对 1 000 000 0071\,000\,000\,007 取模的结果。

1
14
196
2
11 16
393
3
20 11 12
717