P13563 「WWOI R1」WSM 游戏

题目背景

[$\texttt{WSM}$](https://gitblock.cn/Projects/769996) 是一款冒险游戏,WSM 是这个游戏的主角。

题目描述

有一个由 $n$ 行 $m$ 列格子构成的地图。WSM 要从地图的左上角坐标为 $(1,1)$ 的格子出发,到达坐标为 $(a,b)$ 的格子。 地图上有 $k$ 个带有密码的锁和 $t$ 个带有密码的钥匙。 当 WSM 到达密码为 $r$ 的钥匙所在的格子,密码为 $r$ 的锁就会立刻消失。 任何一个时刻,WSM 都必须在地图内,且所处的格子必须**没有锁**。 如果某个格子中既有密码为 $r$ 的锁又有密码为 $r$ 的钥匙,那么 WSM 可以进入到这个格子。 地图上还存在着 $p$ 个普通道具和 $q$ 个魔法物品。WSM 可以消耗步数来使用地图上的普通道具和魔法物品。所有的道具和魔法物品均可重复使用。 --- 道具很原始,WSM 只能使用和自己在同一格的道具。 假设 WSM 当前位置为 $(x,y)$,使用道具后移动到 $(x',y')$。 |道具编号|移动后位置| |:-:|:-:| $1$|WSM 向上走一格,即 $(x',y')=(x-1,y)$| $2$|WSM 向下走一格,即 $(x',y')=(x+1,y)$| $3$|WSM 向左走一格,即 $(x',y')=(x,y-1)$| $4$|WSM 向右走一格,即 $(x',y')=(x,y+1)$| --- 魔法物品很脆弱,当 WSM 和某一个魔法物品处在同一格时,这个魔法物品会**永久消失**。 魔法物品很强大,WSM 可以使用地图上任意一个魔法物品。 假设 WSM 当前位置为 $(x,y)$,魔法物品的位置为 $(x_0,y_0)$,使用魔法物品后移动到 $(x',y')$。 |魔法物品编号|移动后位置| |:-:|:-:| $1$|$\frac{x+x'}{2}=x_0$,$\frac{y+y'}{2}=y_0$| $2$|$x'=x$,$\frac{y+y'}{2}=y_0$| $3$|$\frac{x+x'}{2}=x_0$,$y'=y$| WSM 每一步可以使用一个道具或一个魔法物品。请问至少需要多少步才能从坐标为 $(1,1)$ 的格子到达坐标为 $(a,b)$ 的格子?

输入格式

第一行输入四个整数 $n,m,a,b$。 第二行输入四个整数 $k,t,p,q$。 接下来 $k$ 行,每行输入三个整数 $x,y,r$,表示坐标 $(x,y)$ 的格子上有密码为 $r$ 的锁。 接下来 $t$ 行,每行输入三个整数 $x,y,r$,表示坐标 $(x,y)$ 的格子上有密码为 $r$ 的钥匙。 接下来 $p$ 行,每行输入三个整数 $x,y,id$,表示坐标 $(x,y)$ 的格子上有编号为 $id$ 的道具。 接下来 $q$ 行,每行输入三个整数 $x,y,id$,表示坐标 $(x,y)$ 的格子上有编号为 $id$ 的魔法物品。

输出格式

输出一个整数,表示 WSM 所需的最小步数,如果无法到达则输出 `-1`。

说明/提示

### 【样例 $1$ 解释】 花费最小步数的路线为: $\def\f#1{\xrightarrow{\bf 道具#1}} (1,1) \f{2} (2,1) \f{4} (2,2)$。 ### 【数据范围】 **本题采用捆绑测试。** 请注意:任意一个格子内可能**同时存在**多个锁、钥匙、道具和魔法道具。 对于所有测试数据,保证: * $1\le n,m\le400$,$1\le a\le n$,$1\le b\le m$。 * $1\le k \le 10^3$,$0\le t\le 3$,$1\le p\le 5\times 10^5$,$0\le q\le 3$。 * 对于所有的锁、钥匙、道具、魔法物品,均有 $1\le x\le n$,$1\le y\le m$。 * 对于所有的锁,均有 $1\le r\le 10^9$。 * 对于所有的钥匙,均有 $1\le r\le 10^9$。 * 对于所有的道具,均有 $id\in\{1,2,3,4\}$。 * 对于所有的魔法物品,均有 $id\in\{1,2,3\}$。 | 子任务编号 |$n,m\le$|$k\le$|$t\le$|$p\le$|$q\le$|分数| |:-:|:-:|:-:|:-:|:-:|:-:|:-:| |$1$|$2$|$0$|$0$|$13$|$0$|$10$| |$2$|$10$|^|^|$300$|$3$|$10$| |$3$|^|$100$|$3$|^|^|$20$| |$4$|$400$|$0$|$0$|$5\times10^5$|$0$|$10$| |$5$|^|$3$|$3$|^|$3$|$25$| |$6$|^|$10^3$|^|^|^|$25$|