#P5006. [yLOI2018] 大美江湖

[yLOI2018] 大美江湖

题目背景

细雪飘落长街,枫叶红透又一年。
不只为故友流连,其实我也恋长安。
听门外足音慢,依稀见旧时容颜。
故事几经悲欢,结局都与你有关。

——银临《大美江湖》

本题原名《空间复杂度》。

题目描述

扶苏听着《大美江湖》,在剑三里控制着他的人物炮姐来到了长安。

长安城中有一个任务,需要扶苏进入地下的机关道,机关道是的地图一个 nnmm 列的矩形方格图,每个方格内部都有一些怪物或者药水。扶苏操控着炮姐在机关道中游荡。有些时候他希望问问你他的角色一扶苏一有多少攻击力、防御力以及丢失了多少血量。

地图中共有三种药水和一种怪物,分别用字符 RQYM 代表。其中:

  • 字符 R 代表生命药水,可以减少炮姐丢失的 1010 点 血量 HPHP。如果本身损失的 HPHP 不大于 1010,则损失的血量会变成 00
  • 字符 Q 代表力量药水,可以增加炮姐 55 点攻击力 STST
  • 字符 Y 代表防御药水,可以增加炮姐 55 点防御力 DEDE
  • 字符 M 代表怪物,会对炮姐造成伤害。

每只怪物都有三个属性,分别是血量 HP0HP_0,攻击力 ST0ST_0,防御力 DE0DE_0。为了降低验题人工作量题目难度,所有怪物的属性都是相同的。

一旦走到怪物格,遭遇战将开始。扶苏一定会打死怪物,但是怪物也会对扶苏造成一定的伤害。具体的,怪物对扶苏造成的伤害为

$$\max(1, \left\lceil \frac{HP_0}{\max(1, ST - DE_0)}\right\rceil \times \max(1, ST_0 - DE)) $$

其中 max(a,b)\max(a, b) 代表取 aabb 中较大的数,x\lceil x \rceil 代表不小于 xx 的最小整数。下标为 00 的值代表怪物的参数,不带下标值的为角色的参数。

你会收到 qq 次操作,每次操作要么是一次查询,要么是一次移动。

对于移动,你会再获得一个数字参数,这个参数只可能是 1/2/3/41/2/3/4 其中的一个,代表炮姐向地图的左/右/上/下移动。向上移动代表角色所在的行数减一,列数不变,其他方向类似。

对于查询,需要你输出炮姐损失了多少血量,以及当前的攻击力和防御力分别是多少。

请注意,如果多次进入同一个格子,那么格子上的药水会被重复拾取,小怪也会再次出现。即你可以认为离开一个格子以后该格子会恢复原状。

请注意,如果初始位置有怪物,也不会发生战斗,如果初始位置有药水,也不会将之捡拾。

输入格式

每个测试点有且仅有一组测试数据。

输入的第一行是两个用空格隔开的整数,代表地图的行数 nn 和列数 mm

22 到第 (n+1)(n + 1) 行,每行有一个长度为 mm 的字符串,第 (i+1)(i + 1) 行的第 jj 个字符 Ci,jC_{i, j} 代表第 ii 行第 jj 列的方格中物品/生物。特别的,若 Ci,jC_{i, j} 为一个字符 .,则意味着该处没有任何东西,但是可以通行。

(n+2)(n + 2) 行有三个用空格隔开的整数,分别代表怪物的血量 HP0HP_0,攻击力 ST0ST_0 和防御力 DE0DE_0

(n+3)(n + 3) 行有两个整数,分别代表角色初始所在的行数 xx 和列数 yy

(n+4)(n + 4) 行有两个用空格隔开的整数,代表角色初始的攻击力 STST 和防御力 DEDE

(n+5)(n + 5) 行是一个整数,代表操作的次数 qq

(n+6)(n + 6) 到第 (n+q+5)(n + q + 5) 行,每行首先有一个整数 opop,代表本次操作的类型。

  • op=1op = 1,则本次操作是一次查询操作。
  • op=2op = 2,则本次操作是一次移动,一个空格后会有一个整数 dd,作为移动的参数。

输出格式

对于每次查询操作,输出一行三个用单个空格隔开的整数,分别代表角色损失的血量 HPHP,以及当前的攻击力 STST 和防御力 DEDE

5 5
MMMMM
RRRRR
QQQQQ
YYYYY
.....
5 5 5
5 1
10 10
8
2 3
1
2 3
2 3
2 3
1
2 2
1
0 10 15
1 15 15
2 15 15

提示

数据规模与约定

测试点编号 nn mm qq 特殊性质
11 =1=1 =1=1 =0=0
2,32,3 10\leq 10 1000\leq 1000
4,54, 5 =1=1 保证 op=1op = 1
6,7,86,7,8 100\leq 100 104\leq 10^4 保证地图中没有怪物
9,109, 10

对于全部的测试点,保证:

  • 1n,m1001 \leq n, m \leq 1000q1040 \leq q \leq 10^4
  • 0ST0,DE0,HP0,ST,DE1000 \leq ST_0, DE_0, HP_0, ST, DE \leq 100
  • 1op21 \leq op \leq 21d41 \leq d \leq 4
  • Ci,jC_{i, j} 只可能是 .RQYM 其中之一。
  • 保证人物移动过程中的任何时刻,所在行数都是不大于 nn 的正整数,所在列数都是不大于 mm 的正整数。