题意:求一个机器人从点(0,0)走到点(x,y)需要的命令数。(同一个命令不能连续用两次)
可以一直向下走,向右走。
如果x=y,那画一张图就可知道,(0,0)到(1,1)是2步,到(2,2)是4步,到(3,3)是6步,到(x,x)是2 * x步;
如果x<y,那就走到(x,x)点,共2 * x步,再直走(y-x)步,到(x,y)点,由于同一个命令不能连续使用2次,所以直走一次需要原地踏步一次,
步数就是(y-x)* 2,总共是多少步呢?2 * x+(y-x) * 2嘛?别忘了直走到终点后是不需要再原地等待的啦,我们多算了一步,减掉减掉!!
所以是2 * x+(y-x) * 2-1====>>>>step=2 * y-1;
如果x>y呢?同理走到(y,y)点,再直走(x-y)步,巴拉巴拉...我省略啦~~step=2 * x-1;
我要上代码!0.0
#include <stdio.h>
int main()
{
int i,j,n,t;
scanf("%d",&t);
while(t--)
{
int x,y,sum;
scanf("%d %d",&x,&y);
if (x>y)
sum=2*x-1;
else if (x<y)
sum=2*y-1;
else
sum=2*x;
printf("%d\n",sum);
}
return 0;
}