#P14523. 【MX-S11-T4】Ice Drop

    ID: 13571 远端评测题 3000ms 512MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>数学线段树O2优化扫描线梦熊比赛

【MX-S11-T4】Ice Drop

题目背景

Ice Drop - Aqu3ra / 鏡音レン / MORE MORE JUMP!

このセカイを回す 唯一の魔法

让这世界回转的 唯一的魔法

题目描述

定义一个正整数序列是好的,当且仅当对任意正整数 kk,若序列中存在 kk 的倍数,则所有 kk 的倍数在序列中的位置连续。例如 [1,2,6,3][1, 2, 6, 3] 是好的,而 [1,2,3,6][1, 2, 3, 6] 不是好的,因为该序列中 22 的倍数在序列中的位置分别是 2,42, 4,并不是连续的一段。

对于一个长度为 mm 的正整数序列 bb,定义 f(b)f(b) 为满足以下条件的好的正整数序列 bb' 的数量:

  • b=[b1,,bm]b' = [b'_1, \ldots, b'_m] 的长度为 mm
  • bi>1b_i > 1,则 bi=bib'_i = b_i1im1 \le i \le m)。
  • $\operatorname{LCM}(b_1, b_2, \dots, b_m) = \operatorname{LCM}(b'_1, b'_2, \dots, b'_m)$。

爱莉有一个长度为 nn 的正整数序列 a1,,ana_1, \ldots, a_n,她向你提出了 qq 个问题,每次给出两个数 l,rl, r,你要求出 x=lry=xrf(a[x,y])\sum_{x = l}^r \sum_{y = x}^r f(a[x, y]) 的值对 109+710^9 + 7 取模的结果。

注:a[x,y]a[x, y] 表示序列 aa 的子串 [ax,,ay][a_x, \ldots, a_y]LCM\operatorname{LCM} 表示若干个正整数的最小公倍数。

输入格式

第一行,两个正整数 n,qn, q

第二行,nn 个正整数 a1,,ana_1, \ldots, a_n

接下来 qq 行,每行两个正整数 l,rl, r,表示一个问题。

输出格式

输出 qq 行,每行一个非负整数,第 ii 行表示第 ii 个问题的答案对 109+710^9 + 7 取模后的值。

10 6
1 1 2 1 1 6 1 3 5 1
1 5
4 5
8 10
2 8
1 10
6 9
42
3
8
187
475
17

10 1
2 3 5 6 12 4 7 8 9 10
1 10
27

10 1
64 1 1 1 1 96 1 1 1 262144
1 10
2371586

提示

【样例解释 #1】

对于第一个样例:

  • f(a[2,4])=4f(a[2, 4]) = 4,对应的好序列分别为 [1,2,1],[1,2,2],[2,2,1],[2,2,2][1, 2, 1], [1, 2, 2], [2, 2, 1], [2, 2, 2]
  • f(a[6,9])=2f(a[6, 9]) = 2,对应的好序列分别为 [6,3,3,5],[6,6,3,5][6, 3, 3, 5], [6, 6, 3, 5]

【样例 #4】

见选手目录下的 icedrop/icedrop4.in\textbf{\textit{icedrop/icedrop4.in}}icedrop/icedrop4.ans\textbf{\textit{icedrop/icedrop4.ans}}

该样例满足测试点 1,21, 2 的约束条件。

【样例 #5】

见选手目录下的 icedrop/icedrop5.in\textbf{\textit{icedrop/icedrop5.in}}icedrop/icedrop5.ans\textbf{\textit{icedrop/icedrop5.ans}}

该样例满足测试点 6,76, 7 的约束条件。

【样例 #6】

见选手目录下的 icedrop/icedrop6.in\textbf{\textit{icedrop/icedrop6.in}}icedrop/icedrop6.ans\textbf{\textit{icedrop/icedrop6.ans}}

该样例满足测试点 101310\sim 13 的约束条件。

【样例 #7】

见选手目录下的 icedrop/icedrop7.in\textbf{\textit{icedrop/icedrop7.in}}icedrop/icedrop7.ans\textbf{\textit{icedrop/icedrop7.ans}}

该样例满足测试点 141614\sim 16 的约束条件。

【样例 #8】

见选手目录下的 icedrop/icedrop8.in\textbf{\textit{icedrop/icedrop8.in}}icedrop/icedrop8.ans\textbf{\textit{icedrop/icedrop8.ans}}

该样例满足测试点 17,1817, 18 的约束条件。

【样例 #9】

见选手目录下的 icedrop/icedrop9.in\textbf{\textit{icedrop/icedrop9.in}}icedrop/icedrop9.ans\textbf{\textit{icedrop/icedrop9.ans}}

该样例满足测试点 21,2221, 22 的约束条件。

【样例 #10】

见选手目录下的 icedrop/icedrop10.in\textbf{\textit{icedrop/icedrop10.in}}icedrop/icedrop10.ans\textbf{\textit{icedrop/icedrop10.ans}}

该样例满足测试点 232523 \sim 25 的约束条件。

【数据范围】

本题共 2525 个测试点,每个 44 分。

对于所有测试数据,保证:

  • 1n,q,ai5×1051 \le n, q, a_i \le 5 \times 10^5
  • 1lrn1 \le l \le r \le n

::cute-table{tuack}

测试点编号 nn \le qq \le aia_i \le 特殊性质
1,21, 2 500500 11 500500 AB
3,43, 4 50005000 ^ 5×1055 \times 10^5 ABC
55 ^ ^ AB
6,76, 7 5×1055 \times 10^5 ABC
8,98, 9 ^ AB
101310 \sim 13 AC
141614 \sim 16 A
17,1817, 18 5×1055 \times 10^5 BC
19,2019, 20 ^ B
21,2221, 22 C
232523 \sim 25

特殊性质 A:对于所有询问都保证 l=1l = 1r=nr = n
特殊性质 B:对于所有 1in1 \le i \le n 均有 ai>1a_i > 1
特殊性质 C:对于所有 1in1 \le i \le n 均存在 kNk \in \N 使得 ai=2ka_i = 2^k