CF2020A.Find Minimum Operations

入门

通过率:0%

AC君温馨提醒

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

题目描述

给定两个整数 nn 和 kk。

每次操作,你可以从 nn 中减去 kk 的任意次幂。具体来说,每次操作,你可以将 nn 替换为 n−kxn - k^x,其中 xx 为任意非负整数。

请你求出将 nn 变为 00 所需的最少操作次数。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。

接下来每组测试用例占一行,每行包含两个整数 nn 和 kk(1≤n,k≤1091 \le n, k \le 10^9)。

输出格式

对于每组测试用例,输出一个整数,表示将 nn 变为 00 所需的最少操作次数,每个答案占一行。

输入输出样例

  • 输入#1

    6
    5 2
    3 5
    16 4
    100 3
    6492 10
    10 1

    输出#1

    2
    3
    1
    4
    21
    10

说明/提示

在第一个测试用例中,n=5n = 5,k=2k = 2。我们可以按如下顺序进行操作:

  1. 从 55 中减去 20=12^0 = 1,此时 nn 变为 5−1=45 - 1 = 4。
  2. 从 44 中减去 22=42^2 = 4,此时 nn 变为 4−4=04 - 4 = 0。

可以证明,没有办法用少于 22 次操作将 nn 变为 00,因此答案为 22。

在第二个测试用例中,n=3n = 3,k=5k = 5。我们可以按如下顺序进行操作:

  1. 从 33 中减去 50=15^0 = 1,此时 nn 变为 3−1=23 - 1 = 2。
  2. 从 22 中减去 50=15^0 = 1,此时 nn 变为 2−1=12 - 1 = 1。
  3. 从 11 中减去 50=15^0 = 1,此时 nn 变为 1−1=01 - 1 = 0。

可以证明,没有办法用少于 33 次操作将 nn 变为 00,因此答案为 33。

由 ChatGPT 4.1 翻译

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

首页