A. Robot Program

本文介绍了一个关于机器人在无限二维网格中从(0,0)出发到达目标坐标(x,y)的问题,探讨了如何在最少指令数且不连续重复指令的情况下达到目的地。文章提供了一种有效的算法解决方案,并附带实现代码。
Wan2.2-T2V-A5B

Wan2.2-T2V-A5B

文生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

A. Robot Program
time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
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.
Example
input
5
5 5
3 4
7 1
0 0
2 0
output
10
7
13
0
3
Note
The explanations for the example test:

We use characters N, E, S, W and 0 to denote going north, going east, going south, going west and staying in the current cell, respectively.

In the first test case, the robot can use the following sequence: NENENENENE.

In the second test case, the robot can use the following sequence: NENENEN.

In the third test case, the robot can use the following sequence: ESENENE0ENESE.

In the fourth test case, the robot doesn’t need to go anywhere at all.

In the fifth test case, the robot can use the following sequence: E0E.

My Answer Code:

/*
	Author:Albert Tesla Wizard
	Time:2020/11/20 9:38
*/
#include<bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t,Max,Min;
    cin>>t;
    vector<vector<int>>a(t,vector<int>(2));
    vector<int>ans(t);
    for(int i=0;i<t;i++)cin>>a[i][0]>>a[i][1];
    for(int i=0;i<t;i++)
    {
        Max=max(a[i][0],a[i][1]);
        Min=min(a[i][0],a[i][1]);
        if(Min<=Max-1)ans[i]=2*Max-1;
        else ans[i]=Min+Max;
    }
    for(int i=0;i<t;i++)cout<<ans[i]<<'\n';
    return 0;
}

您可能感兴趣的与本文相关的镜像

Wan2.2-T2V-A5B

Wan2.2-T2V-A5B

文生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

function [robot,T_Ln_EE] = DH_Serial2robot(DH_data) % Transforms a description of a multibody system, provided in Denavit-Hartenberg parameters, into the SPART robot model. % % [robot,T_Ln_EE] = DH_Serial2robot(DH_data) % % :parameters: % * DH_data -- Structure containing the DH parameters. (see :doc:`/DH`). % % :return: % * robot -- Robot model (see :doc:`/Tutorial_Robot`). % * T_Ln_EE -- Homogeneous transformation matrix from last link to end-effector --[4x4]. % % **DH descriptions are only supported for serial configurations**. %{ LICENSE This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. %} %=== CODE ===% %Create Robot structure. robot=struct(); %Get name if isfield(DH_data,'name') robot.name=DH.data.name; else robot.name='DH robot'; end %Number of links and joints robot.n_links_joints=DH_data.n; robot.n_q=DH_data.n; %Create links and joints structures robot.links=struct(); robot.joints=struct(); robot.base_link=struct(); %Assign origin robot.origin='DH'; %--- Base link ---% %Get name robot.base_link.name='Base'; %Homogeneous transformation robot.base_link.T=[eye(3),zeros(3,1);zeros(1,3),1]; %Mass and inertia robot.base_link.mass=DH_data.base.mass; robot.base_link.inertia=DH_data.base.I; %--- Iterate through joints and links ---% for i=1:DH_data.n %--- Links ---% %ID robot.links(i).id=i; %Get name
03-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值