A35298.考拉兹猜想
普及+/提高
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
考拉兹猜想(Collatz conjecture),又称为奇偶归一猜想、3n+1 猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想。
指对于每一个正整数,如果它是奇数,则对它乘 3 再加 1;如果它是偶数,则对它除以 2,如此循环,最终都能够得到 1。
即对于任意正整数 n,我们定义
f(n)={n/23n+1if n≡0(mod2)if n≡1(mod2)
现重复执行该运算,形成一个序列,从任意正整数开始,把每步的结果作为下一步的输入。可记作:
ai={nf(ai−1)i=0i>0
考拉兹猜想是:所有正整数最终都会到达 1,即对于上式,存在 i 使得 ai=1。
迄今为止,该猜想经过计算验证,所有不超过 268≈2.95×1020 的正整数,经过上述计算都可以得到 1。
给定一个长度为 N 的数组 A1,A2,⋯,AN。
你需要执行 Q 个操作,第 i 个操作的类型为 Ti:
- Ti=1:给定两个整数 Li 和 Ri,对数组中 [Li,Ri] 区间内所有大于 1 的元素 Ai 变为 f(Ai)。
- Ti=2:给定两个整数 Li 和 Ri,统计数组中区间 [Li,Ri] 内值为 1 的元素的个数。
数据范围
- 1≤N, Q≤2×105
- Ti=1 或 2
- 1≤Ai≤105
- 1≤Li≤Ri≤N
- 题目保证至少有 1 个操作的类型为 Ti=2。
输入格式
对于每个测试文件输入格式如下:
N Q
A1 A2 ⋯ AN
T1 L1 R1
T2 L2 R2
⋮
TQ LQ RQ
输出格式
对于所有的 Ti=2 在单独的一行中输出数组中区间 [Li,Ri] 内值为 1 的元素的个数。
输入输出样例
输入#1
10 8 1 7 16 3 6 10 8 5 2 4 2 1 10 1 1 10 1 2 8 1 3 9 1 2 8 2 1 5 1 4 10 2 7 10
输出#1
1 2 4
说明/提示
样例 1:
- [1,10] 中的元素有 [1,7,16,3,6,10,8,5,2,4] 共有 1 个 1。
- 对 [1,10] 中的所有元素执行一次操作,数组变为 [1,22,8,10,3,5,4,16,1,2]。
- 对 [2,8] 中的所有元素执行一次操作,数组变为 [1,11,4,5,10,16,2,8,1,2]。
- 对 [3,9] 中的所有元素执行一次操作,数组变为 [1,11,2,16,5,8,1,4,1,2]。
- 对 [2,8] 中的所有元素执行一次操作,数组变为 [1,34,1,8,16,4,1,2,1,2]。
- [1,5] 中的元素有 [1,34,1,8,16] 共有 2 个 1。
- 对 [4,10] 中的所有元素执行一次操作,数组变为 [1,34,1,4,8,2,1,1,1,1]。
- [7,10] 中的元素有 [1,1,1,1] 共有 4 个 1。