Educational Codeforces Round 98 (Rated for Div. 2)------Robot Program

题目

There is an infinite 2-dimensional grid. The robot stands in cell (0,0) and wants to reach cell (x,y). Here is a list of possible commands the robot can execute:

move north from cell (i,j) to (i,j+1);
move east from cell (i,j) to (i+1,j);
move south from cell (i,j) to (i,j−1);
move west from cell (i,j) to (i−1,j);
stay in cell (i,j).
The robot wants to reach cell (x,y) in as few commands as possible. However, he can’t execute the same command two or more times in a row.

What is the minimum number of commands required to reach (x,y) from (0,0)?

Input
The first line contains a single integer t (1≤t≤100) — the number of testcases.

Each of the next t lines contains two integers x and y (0≤x,y≤104) — the destination coordinates of the robot.

Output
For each testcase print a single integer — the minimum number of commands required for the robot to reach (x,y) from (0,0) if no command is allowed to be executed two or more times in a row.

题意

让机器人从(0, 0)到(x, y)最少需要多少步操作。有5中操作,以及要求不能进行连续的相同操作

题解

一直向右向下移动,无法交叉的用停留在原地来凑,可获得最小的移动步数

AC代码

#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
    int t; scanf("%d", &t);
    while(t--){
        int x, y; scanf("%d%d", &x, &y);
        int res = 0;
        res = x +y + max(abs(x - y) - 1, 0);
        printf("%d\n", res);
    }
    return 0;
}
posted @ 2020-11-21 08:30  AC_沫离  阅读(58)  评论(0)    收藏  举报