seuOJ305 - Mental Out
- 题目类型:传统
- 输入文件:标准输入流
- 输出文件:标准输出流
- 时间限制:2000 ms
- 空间限制:256 MiB
- 题目标签:秋季, 校赛, 2020
题目描述
Misaki的能力是「心理掌控」。
她能了解每一个Sister对Mikoto的好感度a。
她的手提袋里有一把遥控器,能将一个Sister的好感度由a变为f(a)。
在调查Sister情报的时候,Misaki遇到了n个Sister。这n个Sister的标号从1到n,第i个Sister对Mikoto的好感度为ai。
于是Misaki想要:
-
对某段区间[l,r]内的Sister使用遥控器攻击;
-
算出某段区间[l,r]内的Sister对Mikoto好感度的乘积。
这对于Level 5的Misaki来说自然不是问题,但你能做到吗?
形式化描述如下:
对于正整数i≥2,定义f(i)为除了本身以外i的最大因子,如f(12)=6,f(2)=1。特别地,定义f(0)=0,f(1)=1。
给定一个数列a,你需要完成m个操作,每个操作为以下2种之一:
操作1:将所有满足l≤i≤r的ai改为f(ai);
操作2:求所有满足l≤i≤r的ai的积对109+7取模后的结果。
输入格式
输入的第一行为1个整数n(1≤n≤2×105),表示数列的长度。
接下来一行包含n个正整数,第i个数字表示数列a第i项的初值ai(1≤ai≤2×107)。
接下来一行包含1个整数m(1≤m≤2×105),表示操作个数
接下来m行,每行包含3个整数op,l,r(op∈{1,2},1≤l≤r≤n),分别表示操作类型和区间范围,具体描述如下:
- op=1时,输入格式为1 l r,表示将所有满足l≤i≤r的ai改为f(ai)
- op=2时,输入格式为2 l r,表示求所有满足l≤i≤r的ai的积对109+7取模后的结果。
输出格式
对于每个操作2,输出一行包含一个整数,表示这个询问的答案。
样例
样例输入
5
1 2 3 4 5
3
2 1 5
1 1 5
2 1 5
样例输出
样例解释
在操作1 1 5之后,数组a=[1 1 1 2 1]。