AT_abc235_d.[ABC235D] Multiply and Rotate

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个正整数 aa。黑板上写着一个十进制的数。

当黑板上当前写着的数为 xx 时,高桥君可以进行以下任意一种操作,改变黑板上的数:

  • 擦掉 xx,并将 xx 乘以 aa 的结果以十进制写在黑板上。
  • 将 xx 视为字符串,把末尾的数字移动到字符串的开头。
    但只有当 x≥10x \geq 10 且 xx 不能被 1010 整除时,才能进行此操作。

例如,当 a=2,x=123a = 2, x = 123 时,高桥君可以进行以下任意一种操作:

  • 擦掉 xx,写上 x×a=123×2=246x \times a = 123 \times 2 = 246。
  • 将 xx 视为字符串,把 123 的末尾数字 3 移到开头。黑板上的数会从 123123 变为 312312。

最开始,黑板上写着 11。请问最少需要多少次操作,才能将黑板上的数变为 NN?如果无论如何都无法将黑板上的数变为 NN,请输出 −1-1。

输入格式

输入以如下格式从标准输入读入。

aa NN

输出格式

请输出答案。

输入输出样例

  • 输入#1

    3 72

    输出#1

    4
  • 输入#2

    2 5

    输出#2

    -1
  • 输入#3

    2 611

    输出#3

    12
  • 输入#4

    2 767090

    输出#4

    111

说明/提示

限制条件

  • 2≤a<1062 \leq a < 10^6
  • 2≤N<1062 \leq N < 10^6
  • 输入均为整数。

样例解释 1

通过如下操作,可以在 44 次操作内将黑板上的数从 11 变为 7272:

  • 执行第 11 种操作,黑板上的数变为 1→31 \to 3。
  • 执行第 11 种操作,黑板上的数变为 3→93 \to 9。
  • 执行第 11 种操作,黑板上的数变为 9→279 \to 27。
  • 执行第 22 种操作,黑板上的数变为 27→7227 \to 72。
    无法在 33 次及以下操作内变为 7272,因此答案为 44。

样例解释 2

无论如何操作,都无法将黑板上的数变为 55。

样例解释 3

通过合理选择操作,可以按如下顺序 1→2→4→8→16→32→64→46→92→29→58→116→6111 \to 2 \to 4 \to 8 \to 16 \to 32 \to 64 \to 46 \to 92 \to 29 \to 58 \to 116 \to 611,共 1212 次操作将黑板上的数变为 611611,且这是最少次数。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页