#CF1946F. 不需要任何人
不需要任何人
不需要任何人
- 时间限制:5 秒
- 内存限制:512 MiB
题目描述
Oleg 收到了一份长度为 的排列 作为生日礼物。
Oleg 的朋友 Nechipor 向他提出了 个询问。每个询问由两个整数 表示。对于每个询问,你需要求出满足下列条件的下标序列 的数量,其中 :
- 对所有 ,都有 ;
- 对所有 ,都有 ;
- 对所有 , 能被 整除。
请回答所有询问。
输入格式
第一行包含一个整数 ,表示测试用例数量。
对于每个测试用例:
- 第一行包含两个整数 ,分别表示排列长度和询问数量;
- 第二行包含 个整数 ,它们构成 到 的一个排列;
- 接下来 行,每行包含两个整数 ,表示一个询问区间。
输出格式
对于每个测试用例,输出一行 个整数,按输入顺序给出所有询问的答案。
样例输入
4
8 8
2 1 6 3 5 4 8 7
1 8
2 8
1 7
1 6
1 3
5 8
4 4
2 3
1 1
1
1 1
3 3
3 2 1
1 2
1 3
2 3
8 1
1 2 3 4 5 6 7 8
1 8
样例输出
20 15 18 12 5 5 1 3
1
2 3 2
27
数据范围
对于所有数据:
- ;
- ;
- 是 到 的一个排列;
- ;
- 所有测试用例的 之和不超过 ;
- 所有测试用例的 之和不超过 ;
- 答案使用 64 位有符号整数保存。
各子任务独立计分。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 30 | ,每个测试用例满足 ,且 |
| 2 | 每个测试用例都满足 | |
| 3 | 40 | 无特殊限制 |