#D. 剑三江湖

    Type: RemoteJudge 1000ms 500MiB

剑三江湖

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

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

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

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

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

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

$$\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 其中的一个,代表ZZZ向地图的左/右/上/下移动。向上移动代表角色所在的行数减一,列数不变,其他方向类似。

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

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

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

输入格式

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

输入的第一行是两个用空格隔开的整数,代表地图的行数 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 的正整数。

2024暑假C23toB大黄鸭争夺赛

Not Attended
Status
Done
Rule
Ledo
Problem
6
Start at
2024-7-20 14:00
End at
2024-7-20 16:30
Duration
2.5 hour(s)
Host
Partic.
50