CF1982B.Collatz Conjecture

普及-

通过率:0%

AC君温馨提醒

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

题目描述

最近,一年级新生 Maxim 了解到了 Collatz 猜想,但他在讲座上并没有认真听讲,所以他认为猜想中提到的是如下过程:

有一个变量 xx 和一个常数 yy。进行 kk 次如下操作:

  • 将 xx 增加 11,然后
  • 当 xx 能被 yy 整除时,不断将 xx 除以 yy。

注意,这两个动作在一次操作中依次进行。例如,如果 x=16x = 16,y=3y = 3,k=2k = 2,那么第一次操作后 xx 变为 1717,再进行一次操作后 xx 变为 22,因为加一后 x=18x = 18,可以被 33 连续整除两次。

给定 xx、yy 和 kk 的初始值,Maxim 想知道经过 kk 次操作后 xx 的最终值。

输入格式

每组测试包含多个测试用例。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^{4})——表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例一行,包含三个整数 xx、yy 和 kk(1≤x,k≤1091 \le x, k \le 10^{9},2≤y≤1092 \le y \le 10^{9})——初始变量、常数和操作次数。

输出格式

对于每个测试用例,输出一个整数——经过 kk 次操作后得到的数。

输入输出样例

  • 输入#1

    13
    1 3 1
    2 3 1
    24 5 5
    16 3 2
    2 2 1
    1337 18 1
    1 2 144133
    12345678 3 10
    998244353 2 998244353
    998244353 123456789 998244352
    998244354 998241111 998244352
    998244355 2 9982443
    1000000000 1000000000 1000000000

    输出#1

    2
    1
    1
    2
    3
    1338
    1
    16936
    1
    21180097
    6486
    1
    2

说明/提示

在第一个测试用例中,只对 x=1x = 1 进行了一次操作,结果 xx 变为 22。

在第二个测试用例中,对于 x=2x = 2,一次操作中先加一再除以 y=3y = 3,结果 xx 变为 11。

在第三个测试用例中,xx 的变化如下:

  • 第一次操作后,x=1x = 1,因为 24+1=2524 + 1 = 25,2525 可以被 y=5y = 5 连续整除两次。
  • 第二次操作后,x=2x = 2。
  • 第三次操作后,x=3x = 3。
  • 第四次操作后,x=4x = 4。
  • 第五次操作后,x=1x = 1。

由 ChatGPT 4.1 翻译

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

首页