AT_tupc2024_l Square Connection
题目描述
给定正整数 $s,t$。你可以进行如下操作任意(包括 $0$)次:
- 选择一个满足 $1 \leq u \leq 4 \times 10^{18}$ 的整数 $u$,且 $s+u$ 是一个完全平方数,然后将 $s$ 替换为 $u$。
请你求使 $s$ 变为 $t$ 所需的最小操作次数,并给出其中一种操作方法。
形式化地说,请你找到一个满足以下条件的长度为 $K$ 的整数序列 $(u_1,u_2,\dots,u_K)$:
- $K$ 是使 $s$ 变为 $t$ 所需的最小操作次数;
- 对于所有 $i=1,\dots,K$,都满足 $1 \leq u_i \leq 4 \times 10^{18}$;
- 设 $u_0=s$,则对所有 $i=1,\dots,K$,有 $u_{i-1}+u_i$ 是完全平方数;
- $u_K=t$。
在本题的约束下,可以证明总能找到不超过 $10^6$ 次操作的方法使 $s$ 变为 $t$。
共有 $T$ 组测试用例,请分别回答每个询问。
输入格式
输入以以下格式从标准输入读入。
> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$
其中 $\text{case}_i$ 表示第 $i$ 个测试用例,每个测试用例格式如下:
> $s$ $t$
输出格式
输出共 $T$ 行。第 $i$ 行包含第 $i$ 个测试用例的答案,格式为:
> $K$ $u_1$ $u_2$ $\dots$ $u_K$
如果有多个方案,只需输出其中一种即可。
说明/提示
### 样例解释 1
对于第 $1$ 个测试用例,$8+1=9,\,1+3=4$ 都是完全平方数。另外,无法用一次操作将 $8$ 变为 $3$。
### 约束条件
- $1 \leq T \leq 3 \times 10^5$
- $1 \leq s, t \leq 10^9$
- $s \ne t$
- 一个输入文件中所有操作次数 $K$ 的总和不超过 $10^6$
- 所有输入均为整数。
由 ChatGPT 5 翻译