CF1452A Robot Program
题目描述
有一个无限的二维网格。机器人站在格点 $(0, 0)$,它想要到达格点 $(x, y)$。机器人可以执行以下命令:
- 从格点 $(i, j)$ 向北移动到 $(i, j + 1)$;
- 从格点 $(i, j)$ 向东移动到 $(i + 1, j)$;
- 从格点 $(i, j)$ 向南移动到 $(i, j - 1)$;
- 从格点 $(i, j)$ 向西移动到 $(i - 1, j)$;
- 停留在格点 $(i, j)$。
机器人希望用尽可能少的命令从 $(0, 0)$ 到达 $(x, y)$。但是,机器人不能连续两次或多次执行相同的命令。
问:从 $(0, 0)$ 到 $(x, y)$,机器人最少需要多少次命令?
输入格式
第一行包含一个整数 $t$($1 \le t \le 100$),表示测试用例的数量。
接下来的 $t$ 行,每行包含两个整数 $x$ 和 $y$($0 \le x, y \le 10^4$),表示机器人的目标坐标。
输出格式
对于每个测试用例,输出一个整数,表示机器人从 $(0, 0)$ 到 $(x, y)$ 所需的最少命令数,前提是不能连续执行相同的命令两次或更多次。
说明/提示
示例测试的解释:
我们用字符 N、E、S、W 和 0 分别表示向北、向东、向南、向西和停留在当前位置。
在第一个测试用例中,机器人可以使用如下序列:NENENENENE。
在第二个测试用例中,机器人可以使用如下序列:NENENEN。
在第三个测试用例中,机器人可以使用如下序列:ESENENE0ENESE。
在第四个测试用例中,机器人不需要移动。
在第五个测试用例中,机器人可以使用如下序列:E0E。
由 ChatGPT 4.1 翻译