、

CF261E Maxim and Calculator

题意

一开始 \(a=1,b=0\),两种操作:

  1. \(b+1\to b\)
  2. \(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\) 个合法的数即可。

posted @ 2026-09-25 18:16  tanghg  阅读(2)  评论(0)    收藏  举报