如果我们只有两个运算,请找出给定数字的最小可能值

时间:2018-10-10 17:16:44

标签: math breadth-first-search greedy number-theory

我们有一个数字让我们说m,我们有两个给定的运算,我们的任务是找出达到最小步数的m的最小可能值。

两个操作是

  1. 我们可以添加数字的位数(将算作1步)。

  2. 我们可以添加一个固定数字k(给出)

我们可以多次重复上述操作。

例如:m = 11和k = 13

输出:1 4(1是最小值,4是步数)

11 + 13 = 24(1步)+ 13 = 37(1 + 1 = 2步)= 3 + 7 = 10(3步)= 1 + 0 = 1(4步)

我尝试了什么?

因此,由于BFS以这样的方式处理此类问题,即我们访问每个节点,直到获得最小的值为止(我认为这是基于BFS的,如果我错了,请纠正我)。我以为我们要进行BFS,直到我们得到重复的数字总和或相同的数字,但是它超出了界限,因为m和k的约束最大为10 ^ 10。

我是否可以做一些优化我的BFS的事情,还是必须做的其他事情,我的意思是我应该使用其他算法吗?

只需要一些有关我还能做什么的指导!

0 个答案:

没有答案