1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

题目大意

求出将111变成bbb的最少次数(不能变则输出-1)有两个操作。 1.将当前数字∗a*a∗a 2.将当前数字循环右移一次(12345−>51234)(12345->51234)(12345−>51234)

思路:单源BFS

我们在看完题面之后,我们需要将数字1变成b。通过乘法或者循环右移,没有规律可言。注意到我们的数据范围(a,b)都是小于10610^6106。也就是我们把a变成大于min(10610^6106,b)之后这个状态是肯定没有用的。

状态只有10610^6106这么多,把两种操作看成是两条单向边。这样就变成了一个典型的最短路径问题。那么我们使用BFS(或者记忆化搜索)来解决。

P14345.【广度优先搜索8】小塔爱魔法

    1000ms Tried: 175 Accepted: 76 Difficulty: 5
    算法与标签>BFS

本题为2024年10月19日小米机考原题

小米机考的介绍点击这里

题目内容

小塔最近正在学习魔法,通过魔法可以改变纸上的数字。

小塔一共会两种魔法,第一种魔法可以将纸上数字变为它的aaa倍,比如在a=3a=3a=3时,他可以将666666666变成199819981998;第二种魔法可以让纸上的数字循环右移一次,比如123451234512345在施加第二种魔法后会变成512345123451234,119119119会变911911911,需要注意的是,小塔无法对小于101010或是以000为结尾的数施加第二种魔法。

纸上的数字初始是111,小塔想将它变成自己的幸运数字bbb,那么请问小塔至少需要施加几次魔法。如果无论如何 都无法将它变成bbb,请输出−1-1−1。

输入描述

输入一行,包含两个正整数a,ba,ba,b 2≤a,b<1062≤a,b<10^62≤a,b<106

输出描述

输出一行一个数,表示最少的魔法次数,或输出−1-1−1表示无解。

样例1

输入

3 621

输出

6

说明

样例解释111

一种可行的方法为:1−>3−>9−>27−>72−>216−>6211->3->9->27->72->216->6211−>3−>9−>27−>72−>216−>621

样例2

输入

3 666

输出

-1

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 2, 33ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?