[CSP-J 2024] 地图探险
题目描述
小 A 打算前往一片丛林去探险。丛林的地理环境十分复杂,为了防止迷路,他先派遣了一个机器人前去探路。
丛林的地图可以用一个 nnn 行 mmm 列的字符表来表示。我们将第 iii 行第 jjj 列的位置的坐标记作 (i,j)(1≤i≤n,1≤j≤m)(i, j)(1 \leq i \leq n, 1 \leq j \leq m)(i,j)(1≤i≤n,1≤j≤m)。如果这个位置的字符为 x\tt xx,即代表这个位置上有障碍,不可通过。反之,若这个位置的字符为 .\tt..,即代表这个位置是一片空地,可以通过。
这个机器人的状态由位置和朝向两部分组成。其中位置由坐标 (x,y)(1≤x≤n,1≤y≤m)(x, y)(1 \leq x \leq n, 1 \leq y \leq m)(x,y)(1≤x≤n,1≤y≤m) 刻画,它表示机器人处在地图上第 xxx 行第 yyy 列的位置。而朝向用一个 0∼30 \sim 30∼3 的 整数 ddd 表示,其中 d=0d = 0d=0 代表向东,d=1d = 1d=1 代表向南,d=2d = 2d=2 代表向西,d=3d = 3d=3 代表向北。
初始时,机器人的位置为 (x0,y0)(x_0, y_0)(x0,y0),朝向为 d0d_0d0。保证初始时机器人所在的位置为空地。接下来机器人将要进行 kkk 次操作。每一步,机器人将按照如下的模式操作:
-
假设机器人当前处在的位置为 (x,y)(x, y)(x,y),朝向为 ddd。则它的方向上的下一步的位置 (x′,y′)(x^′, y^′)(x′,y′) 定义如下:若 d=0d = 0d=0,则令 (x′,y′)=(x,y+1)(x^′, y^′) = (x, y + 1)(x′,y′)=(x,y+1),若 d=1d = 1d=1,则令 (x′,y′)=(x+1,y)(x^′, y^′) = (x + 1, y)(x′,y′)=(x+1,y),若 d=2d = 2d=2,则令 (x′,y′)=(x,y−1)(x^′, y^′) = (x, y - 1)(x

最低0.47元/天 解锁文章
765

被折叠的 条评论
为什么被折叠?



