#B1307. 地图探险 [CSP-J 2024]

地图探险 [CSP-J 2024]

【题目描述】

给定若干张由空地 . 和障碍 x 组成的地图。

机器人具有当前位置和朝向,朝向 0,1,2,30,1,2,3 分别表示东、南、西、北。

每一步若前方在地图内且为空地,机器人前进一步;否则原地向右转。

请统计执行 kk 步后,机器人经过过的不同位置数量,起点也计入。


【输入描述】

第一行输入整数 TT。

每组数据第一行输入三个整数 n,m,kn,m,k;第二行输入 x0,y0,d0x_0,y_0,d_0;接下来 nn 行输入地图。

保证:

  • 1≤T≤51\le T\le 5。
  • 1≤n,m≤10001\le n,m\le 1000,1≤k≤1061\le k\le 10^6。
  • 1≤x0≤n1\le x_0\le n,1≤y0≤m1\le y_0\le m,0≤d0≤30\le d_0\le 3。
  • 地图仅包含 . 和 x,且起始位置为空地。

【输出描述】

对每组数据输出一行一个整数,表示机器人经过过的不同位置数量。


【样例 1】

【样例 1 输入】

2
1 3 4
1 1 2
...
5 5 8
3 3 0
.....
..x..
.....
..x..
.....

【样例 1 输出】

3
7

【样例 1 解释】

第一组机器人先两次右转,再向东走两步,共经过 33 个位置。


【样例 2】

【样例 2 输入】

1
3 4 10
2 2 0
....
....
....

【样例 2 输出】

8

【数据规模与约定】

测试点编号 分数 特殊性质
1 ~ 2 20 n=1n=1,k≤10k\le 10
3 ~ 5 30 n,m≤100n,m\le 100,k≤2000k\le 2000
6 ~ 10 50 n,m≤1000n,m\le 1000,k≤106k\le 10^6,1≤T≤51\le T\le 5