首页 > 解决方案 > 如果我们只有两个操作,则找到给定数字的最小可能值

问题描述

我们有一个数字,比如说 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 还是我必须做的其他事情,我的意思是我应该使用其他算法吗?

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

标签: mathbreadth-first-searchgreedynumber-theory

解决方案


推荐阅读