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

    ID: 16274 远端评测题 3000ms 512MiB 尝试: 0 已通过: 0 显示难度NOI/NOI+/CTS 上传者: 标签>数学线段树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) 为满足以下条件的好的正整数序列 b′b' 的数量:

  • b′=[b1′,…,bm′]b' = [b'_1, \ldots, b'_m] 的长度为 mm;
  • 若 bi>1b_i > 1,则 bi′=bib'_i = b_i(1≤i≤m1 \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=lr∑y=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}}。

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

【样例 #7】

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

该样例满足测试点 14∼1614\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}}。

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

【数据范围】

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

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

  • 1≤n,q,ai≤5×1051 \le n, q, a_i \le 5 \times 10^5;
  • 1≤l≤r≤n1 \le l \le r \le n。

::cute-table{tuack}

测试点编号 n≤n \le q≤q \le ai≤a_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
10∼1310 \sim 13 AC
14∼1614 \sim 16 A
17,1817, 18 5×1055 \times 10^5 BC
19,2019, 20 ^ B
21,2221, 22 C
23∼2523 \sim 25 无

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