#P16114. [2026年山东集训一轮]迪艾斯
[2026年山东集训一轮]迪艾斯
题目描述
小 A 有一个正整数序列 和一个质数 。他现在想让你支持 次操作,操作分为两种:
- 给定区间 和一个正整数 ,将区间内所有 都乘上 。
- 给定区间 ,问在这个区间内任选若干个 ,并将它们乘起来对 取模,能得到多少种不同的结果。
选择时允许重复选相同的 ,也可以一个数都不选。若一个数都不选,则认为乘积为 。
输入格式
第一行三个整数 。
第二行 个整数 。
接下来 行,每行第一个整数 :
- 若 ,接下来输入三个整数 ;
- 若 ,接下来输入两个整数 。
输出格式
对于所有 的操作,输出一行一个整数表示答案。
样例 1 输入
5 13 5
7 9 12 11 12
1 1 2 5
1 2 3 2
1 2 4 6
2 4 4
2 3 5
样例 1 输出
1
2
样例 1 解释
第一次操作后序列为:
[35, 45, 12, 11, 12]
第二次操作后序列为:
[35, 90, 24, 11, 12]
第三次操作后序列为:
[35, 540, 144, 66, 12]
第四次操作相当于询问只选择若干个 相乘后对 取模的结果数。由于
$$66^0 \equiv 66^1 \equiv 66^2 \equiv \cdots \equiv 1 \pmod {13},$$所以只有 种结果,答案为 。
第五次操作中,所有选数方案得到的乘积对 取模后只有 和 两种,答案为 。
更多样例在下发文件中。
数据范围
对于全部测试点:
- ;
- ;
- ;
- 保证 是质数;
- 每个测试点 分。
| 测试点编号 | 特殊性质 | ||
|---|---|---|---|
| 无 | |||
| 保证当 时 | |||
| 无 | |||