【题目描述】
有一个H×W的网格,从上往下第h行,从左往右第w列的格子用(h,w)表示。在(h,w)这个格子上写着一个非负整数Ah,w。
高桥君一开始位于格子(sh,sw),接下来他将对网格进行Q次修改。第i次修改由一个字符di(di是L、R、U、D中的一个)和一个非负整数ai给出,这意味着高桥君将执行以下操作:
按照di的方向移动1个格子。也就是说,如果di是L,就向左移动;如果di是R,就向右移动;如果di是U,就向上移动;如果di是D,就向下移动。然后,将移动到的格子设为(h,w),并将Ah,w改为ai。
保证在每次修改中,高桥君都可以按照d_i的方向移动1个格子。
每次修改网格后,请输出以下问题的答案:
- 如果一个格子序列P=((h1,w1),…,(hM,wM))满足以下所有条件,那么称P为一条路径:
- (h1,w1)=(1,1),(hM,wM)=(H,W),M=H+W−1。
- 对于任意满足1≤i≤M-1的i,都有(h_{i+1},w_{i+1})=(h_i+1,w_i)或者(h_{i+1},w_{i+1})=(h_i,w_i+1)。
- 从(1,1)到(H,W)的路径有H−1H+W−2条。
- 对于路径P=((h1,w1),…,(hM,wM)),定义f(P)=∏1≤i≤M×Ahi,wi。求所有路径P的f(P)之和对998244353取余的结果。
【输入格式】
HWA1,1A1,2...A1,W⋮AH,1AH,2...AH,WQshswd1a1⋮dQaQ
第一行输入H和W。
接下来H行,每行W个数,代表A1,1至AH,W。
然后输入三个数Q,sh,sw。
最后输入Q行,每行1个字符和1个整数,表示di,ai。
【输出格式】
输出Q行。
第i行输出第i次修改网格后,所有路径P对应的f(P)之和。(答案对998244353取余)
【样例组】
输入1
2 3
1 2 3
4 5 6
3 2 2
U 7
R 8
L 9
输出1
456
666
822
输入2
5 4
147015809 294958521 852121867 499798308
790350368 404692331 645419803 290531806
275766153 896286651 239187926 945049742
340760022 236352314 926236110 223464913
287023679 590772036 340282357 521075891
6 3 1
U 344644511
R 45812235
D 260083498
R 781118585
L 156297846
L 411901560
输出2
299123226
548055393
810247224
876210800
773990840
506814544
【样例解释】
【样例解释#1】
最初,高桥君位于(2,2)。
- 向上移动,将A1,2改为7。各路径对应的f(P)如下:
- P=((1,1),(1,2),(1,3),(2,3)):f(P)=1×7×3×6=126。
- P=((1,1),(1,2),(2,2),(2,3)):f(P)=1×7×5×6=210。
- P=((1,1),(2,1),(2,2),(2,3)):f(P)=1×4×5×6=120。
- 向右移动,将A1,3改为8。各路径对应的f(P)如下:
- P=((1,1),(1,2),(1,3),(2,3)):f(P)=1×7×8×6=336。
- P=((1,1),(1,2),(2,2),(2,3)):f(P)=1×7×5×6=210。
- P=((1,1),(2,1),(2,2),(2,3)):f(P)=1×4×5×6=120。
- 向左移动,将A1,2改为9。各路径对应的f(P)如下:
- P=((1,1),(1,2),(1,3),(2,3)):f(P)=1×9×8×6=432。
- P=((1,1),(1,2),(2,2),(2,3)):f(P)=1×9×5×6=270。
- P=((1,1),(2,1),(2,2),(2,3)):f(P)=1×4×5×6=120。
【数据范围】
2≤H,W≤200000H×W≤2000000≤Ah,w<9982443531≤Q≤2000001≤sh≤H,1≤sw≤W0≤ai<998244353H,W,Ah,w,Q,sh,sw,ai均为整数。
di是L
、R
、U
、D
中的一个
在每次修改中,高桥君都可以向di方向移动1个格子