CF261E Maxim and Calculator
题意
一开始 \(a=1,b=0\),两种操作:
- \(b+1\to b\)
- \(a\cdot b\to a\)
求 \(l,r\) 中有多少个数可以在 \(p\) 步里让 \(a\) 表示出来。
\(l,r\le 10^9,p\le 100\)
思路
首先我们考虑 \(b\) 的范围至多是 \(p\) 的,这也说明 \(a\) 不会出现大于 \(p\) 的质因数。那么考虑 \(10^9\) 有多少个只有不超过 \(100\) 的质因数组成的数发现只有 \(3\times 10^6\) 级别。那么只需要考虑这些数具体需要多少步。考虑动态规划 \(f_{i,j}\) 表示 \(b\) 是 \(i\),\(a\) 是 \(j\) 的最小 \(2\) 操作次数。即:
\[f_{i,j}=\min(f_{i,j-1},f_{i,\frac{j}{i}})
\]
然后滚动数组和将 \(j\) 改为第 \(j\) 个合法的数即可。

浙公网安备 33010602011771号