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 翻译