math - 如果我们只有两个操作,则找到给定数字的最小可能值
问题描述
我们有一个数字,比如说 m,我们有给定的两个操作,我们的任务是找出 m 的最小可能值,并以最少的步数达到
两个操作是
我们可以添加数字的位数(将计为 1 步)。
我们可以添加一个固定数字 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 还是我必须做的其他事情,我的意思是我应该使用其他算法吗?
只需要一些关于我还能做什么的指导!
解决方案
推荐阅读
- c# - 将 2 字节值转换为顶点值
- c# - 防止在同一位置连续生成预制件
- vba - 如何在报表代码中引用表单对象
- amazon-web-services - 有没有办法轻松获取特定 AWS Lambda 执行的日志条目?
- python - 如何使用 manim 从非场景类播放动画?
- c++ - C ++:在没有取消引用运算符的情况下访问“数组指针”的值?
- python - 将 bs4 的 get_text() 输出转换为带有标题的 csv
- python - 加入数百个 IRC 频道套接字死亡(抽搐)
- aem - AEM 6.5.3 - WCM IO 问题 - 在上下文感知配置页面上显示标签 ID 而不是标签值
- reactjs - 在可重用组件中呈现不同的 html