luogu#P11078. 「FSLOI Round I」迷雾

    ID: 15004 远端评测题 500ms 512MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>线段树洛谷原创O2优化差分洛谷月赛

「FSLOI Round I」迷雾

题目背景

English statement. You must submit your code at the Chinese version of the statement.

小 F 来到了迷雾之森。

题目描述

整个迷雾之森可以由一个 n×mn \times m 的矩阵表示,X 代表有迷雾的地块,. 代表空地。从上到下给每行标号为 1,2,,n1,2,\cdots,n,从左到右给每列标号为 1,2,,m1,2,\cdots,m。除此之外,还会给定一个迷雾系数 kk

小 F 进行了 qq 次移动。第 ii 次移动由一个字符 cic_i,两个数字 ai,bia_i,b_i 描述,更具体地说:

  • cic_iU 时,向上走 aia_i 步。
  • cic_iD 时,向下走 aia_i 步。
  • cic_iL 时,向左走 aia_i 步。
  • cic_iR 时,向右走 aia_i 步。

当然,小 F 不可以走出这个 n×m n \times m 的范围。换句话说,若走到边界处,立即结束此次移动。

若第 ii 次移动结束后小 F 停留在有迷雾的地块上,则小 F 会对从 i+ki+k 开始,之后每 kk 次移动的 cc 进行一次修改,一共修改 bib_i 个移动。也就是说,小 F 会对 ci+k,ci+2×k,,ci+bi×kc_{i+k},c_{i+2\times k},\cdots,c_{i+b_i \times k} 进行一次修改(保证 i+bi×kqi+b_i\times k \leq q)。若 bi=0b_i=0 则相当于不做修改。注意所有操作的 kk 是一样的

修改 cxc_x 即为按照以下规则替换 cxc_x

  • cxc_xU,则替换为 D
  • cxc_xD,则替换为 U
  • cxc_xR,则替换为 L
  • cxc_xL,则替换为 R

初始时小 F 在点 (1,1)(1,1) 处,请输出 qq 次移动后小 F 所在的位置 (x,y)(x,y)

输入格式

第一行四个整数 n,m,q,kn,m,q,k

接下来 nn 行,每行一个长度为 mm,由 .X 构成的字符串,描述整个迷雾之森。

接下来 qq 行,每行先是一个字符 cic_i,然后依次是两个整数 ai,bia_i,b_i,描述每次移动。

输出格式

共一行。

两个整数 x,yx,y,表示小 F 最终的位置。

3 3 4 1
..X
.XX
XXX
D 1 2
R 1 2
D 2 0
L 1 0

1 3

10 10 8 2
XX.XX.X...
XXX..XXX.X
XXX.X.XXXX
XXXXXXX.X.
.XX...XX.X
.XXX.X.X.X
...XXX.XXX
XX...XX...
X..XX....X
XXXXX...XX
U 2 1
L 1 3
R 3 1
L 1 2
D 2 1
R 5 1
L 4 0
D 3 0

1 10

提示

【样例 1 解释】

小 F 的位置变化如下:

$(1,1) \rightarrow (2,1) \rightarrow (2,2)\rightarrow (1,2) \rightarrow (1,3)$

序列 cc 的变化如下:

$ \lbrace \texttt{D,R,D,L} \rbrace \rightarrow \lbrace \texttt{D,R,D,L} \rbrace \rightarrow \lbrace \texttt{D,R,U,R} \rbrace \rightarrow \lbrace \texttt{D,R,U,R} \rbrace \rightarrow \lbrace \texttt{D,R,U,R} \rbrace$

【数据规模与约定】

本题采用捆绑测试。

对于 100%100 \% 的数据,保证:

  • 1n,m5001 \leq n,m \leq 500
  • 1k201 \leq k \leq 20
  • 1q2×1051\leq q \leq 2 \times 10^5
  • 1ai,bi1061 \leq a_i,b_i \leq 10^6
  • cic_iLRUD 四个字符中的一个。
子任务 分值 特殊性质
11 55 q=1q=1
22 1515 n,m,q100n,m,q\leq 100
33 2020 k=1k=1
44 3030 n=1n=1
55