问题 E: 机器人走格子
时间限制: 1 Sec 内存限制: 128 MB
提交: 126 解决: 24
[提交][状态][讨论版]
题目描述
一个长X宽Y的棋盘,有XY个格子。将机器人放在某个格子中,机器人可以沿上、下、左、右四个方向走一步到相邻的格子中,但不会越过棋盘边界。
问机器人要经过所有的格子至少一次并最终回到起点最少需要多少步?规则允许机器人多次走过同一个格子。对于X=Y=1的情形,我们认为答案为0。
输入
输入数据的第一行是一个整数T(0
#include<stdio.h>
#include<stdlib.h>
int main()
{
int m;
scanf("%d",&m);
while(m--)
{
int x,y,s,i,j;
char a[105][105];
scanf("%d%d",&x,&y);
for(i=0; i<y; i++)
{
for(j=0; j<x; j++)
scanf("%c",&a[i][j]);
getchar();
}
if(x==1&&y==1)
s=0;
else if(x==1)
s=(y-1)*2;
else if(y==1)
s=(x-1)*2;
else if(x%2==0||y%2==0)
s=x*y;
else
s=x*y+1;
printf("%d\n",s);
}
return 0;
}