#B3855. [语言月赛 202309] 扶苏迭代

[语言月赛 202309] 扶苏迭代

题目背景

给定一个函数 f(x)f(x),我们关注如何求出一个点 x0x_0 使得当把 x0x_0 带入函数式时,得到的函数值 f(x0)f(x_0)00。即求出方程 f(x)=0f(x) = 0 的一个根 x0x_0

牛顿迭代法就是这样一个方法。

但是我不打算向您介绍牛顿迭代的具体方法,因为这和本题没什么关系。

题目描述

给定初始变量 x0x_0,请你按如下表达式迭代计算 xix_i

$$x_i = \left\lfloor\frac{x_{i - 1} + a}{a}\right\rfloor $$

其中 i>0i > 0

我们称这个迭代过程为扶苏迭代。可以证明,在经过若干次扶苏迭代以后,xix_i 的取值会稳定成为一个常数 xNx_N。也就是存在一个 j0j \geq 0,使得对于所有 k,hjk,h \geq jxk=xhx_k = x_h

你的任务是输出 xix_i 稳定到这个常数前的扶苏迭代过程。即输出 x0,x1,x2,xjx_0, x_1, x_2, \dots x_j。这里 jj 是最小的满足 xj=xNx_j = x_N 的数。

可以证明,在给定的数据范围下,迭代次数不会很多。

输入格式

本题单个测试点内有多组测试数据。的第一行是一个整数,表示测试点个数 TT

对每组数据,只有一行两个整数,表示 x0x_0aa

输出格式

对每组数据,输出一行若干个用空格隔开的整数,表示扶苏迭代过程变量 xix_i 的取值。

2
2 2
3 2
2
3 2

提示

数据规模与约定

  • 30%30\% 的数据,T=1T = 1
  • 另有 30%30\% 的数据,x0=ax_0 = a
  • 100%100\% 的数据,2x0,a2×1092 \leq x_0, a \leq 2 \times 10^91T1041 \leq T \leq 10^4