#aBC341C. [ABC341C] Takahashi Gets Lost

[ABC341C] Takahashi Gets Lost

AT_abc341_c [ABC341C] Takahashi Gets Lost

题目描述

有一个 HHWW 列的网格。

网格中的每个格子要么是陆地,要么是海洋,这些信息由 HH 个长度为 WW 的字符串 S1, S2, , SHS_1,\ S_2,\ \ldots,\ S_H 给出。用 (i, j)(i,\ j) 表示从上到下第 ii 行、从左到右第 jj 列的格子,当 SiS_i 的第 jj 个字符为 . 时,格子 (i, j)(i,\ j) 是陆地;为 # 时,格子 (i, j)(i,\ j) 是海洋。

这里保证网格的外周格子(即满足 i=1i=1i=Hi=Hj=1j=1j=Wj=W 中至少一个条件的格子 (i, j)(i,\ j))全部都是海洋。

高桥君乘坐的宇宙飞船在网格上的某个格子紧急降落。之后,高桥君按照只包含 LRUD 的长度为 NN 的字符串 TT 所描述的操作,在网格上移动了 NN 次。对于 i=1,2,,Ni=1,2,\ldots,NTT 的第 ii 个字符表示第 ii 次移动的内容,具体如下:

  • L 表示向左移动 11 格。即,若移动前在 (i,j)(i, j),则移动后在 (i,j1)(i, j-1)
  • R 表示向右移动 11 格。即,若移动前在 (i,j)(i, j),则移动后在 (i,j+1)(i, j+1)
  • U 表示向上移动 11 格。即,若移动前在 (i,j)(i, j),则移动后在 (i1,j)(i-1, j)
  • D 表示向下移动 11 格。即,若移动前在 (i,j)(i, j),则移动后在 (i+1,j)(i+1, j)

已知高桥君移动路径上的所有格子(包括降落点和当前所在格子)都不是海洋。请输出高桥君当前可能所在的格子的个数。

输入格式

输入按以下格式从标准输入中给出。

HH WW NN
TT
S1S_1
S2S_2
\vdots
SHS_H

输出格式

请输出答案。

输入输出样例 #1

输入 #1

6 7 5
LULDR
#######
#...#.#
##...##
#.#...#
#...#.#
#######

输出 #1

2

输入输出样例 #2

输入 #2

13 16 9
ULURDLURD
################
##..##.#..####.#
###.#..#.....#.#
#..##..#####.###
#...#..#......##
###.##.#..#....#
##.#####....##.#
###.###.#.#.#..#
######.....##..#
#...#.#.######.#
##..###..#..#.##
#...#.#.#...#..#
################

输出 #2

6

说明/提示

限制条件

  • H, W, NH,\ W,\ N 为整数。
  • 3H, W5003 \leq H,\ W \leq 500
  • 1N5001 \leq N \leq 500
  • TT 是只包含 LRUD 的长度为 NN 的字符串。
  • SiS_i 是只包含 .# 的长度为 WW 的字符串。
  • 至少存在 11 个格子可能是高桥君当前所在的位置。
  • 网格的外周格子全部是海洋。

样例解释 1

由于存在以下两种情况,高桥君当前可能所在的格子为 (3,4)(3,4)(4,5)(4,5),共 22 个。

  • (3,5)(3,5) 降落,移动路径为 $(3,5) \rightarrow (3,4) \rightarrow (2,4) \rightarrow (2,3) \rightarrow (3,3) \rightarrow (3,4)$。
  • (4,6)(4,6) 降落,移动路径为 $(4,6) \rightarrow (4,5) \rightarrow (3,5) \rightarrow (3,4) \rightarrow (4,4) \rightarrow (4,5)$。

由 ChatGPT 4.1 翻译