#L0185. 区间乘积查询

区间乘积查询

题目背景

实验室里有一排试剂瓶,每个瓶中装有不同浓度的溶液。研究员需要多次查询某段连续试剂瓶中溶液浓度的乘积对一个质数取模的结果。

题目描述

给定一个长度为 nn 的数列 aa,请回答 qq 次询问,每次给定 l,rl, r,请求出 i=lraimodp\prod\limits_{i = l}^r a_i \bmod p 的值,其中 p=10542+1852p = 1054^2 + 185^2。容易证明这是一个质数。

输入格式

第一行是两个整数,依次表示数列长度 nn 和询问次数 qq
第二行有 nn 个整数,第 ii 个整数表示 aia_i
接下来 qq 行,每行两个整数 l,rl, r,表示一次询问。

输出格式

为了避免大量数据输出导致超时,请输出一行一个整数表示所有询问的答案的按位异或和。

样例

5 3
1 2 3 4 5
2 3
3 4
2 4
18

提示

样例 1 解释

三次询问的答案依次为 6,12,246, 12, 24,按位异或和为 1818

数据规模与约定

  • 对于 30%30\% 的数据,保证 n,q103n,q \leq 10^3
  • 对于 60%60\% 的数据,保证 n,q105n, q \leq 10^5

对于全部的测试点,保证 1n,q1061 \leq n, q \leq 10^61lrn1 \leq l \leq r \leq n1ai<p1 \leq a_i \lt p

提示

请学习如何线性求逆元,尽可能做到 O(1)O(1) 回答单次询问。

难度 普及
通过率
尝试 0
已通过 0
ID
913
类型
传统题
Time Limit
1000ms
Memory Limit
128MiB
上传者