#P13563. 「WWOI R1」WSM 游戏

    ID: 14406 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>O2优化广度优先搜索 BFS最短路状压 DP

「WWOI R1」WSM 游戏

题目背景

WSM\texttt{WSM} 是一款冒险游戏,WSM 是这个游戏的主角。

题目描述

有一个由 nnmm 列格子构成的地图。WSM 要从地图的左上角坐标为 (1,1)(1,1) 的格子出发,到达坐标为 (a,b)(a,b) 的格子。

地图上有 kk 个带有密码的锁和 tt 个带有密码的钥匙。
当 WSM 到达密码为 rr 的钥匙所在的格子,密码为 rr 的锁就会立刻消失。
任何一个时刻,WSM 都必须在地图内,且所处的格子必须没有锁
如果某个格子中既有密码为 rr 的锁又有密码为 rr 的钥匙,那么 WSM 可以进入到这个格子。

地图上还存在着 pp 个普通道具和 qq 个魔法物品。WSM 可以消耗步数来使用地图上的普通道具和魔法物品。所有的道具和魔法物品均可重复使用。


道具很原始,WSM 只能使用和自己在同一格的道具。
假设 WSM 当前位置为 (x,y)(x,y),使用道具后移动到 (x,y)(x',y')
|道具编号|移动后位置| |:-:|:-:| 11|WSM 向上走一格,即 (x,y)=(x1,y)(x',y')=(x-1,y)| 22|WSM 向下走一格,即 (x,y)=(x+1,y)(x',y')=(x+1,y)| 33|WSM 向左走一格,即 (x,y)=(x,y1)(x',y')=(x,y-1)| 44|WSM 向右走一格,即 (x,y)=(x,y+1)(x',y')=(x,y+1)|


魔法物品很脆弱,当 WSM 和某一个魔法物品处在同一格时,这个魔法物品会永久消失
魔法物品很强大,WSM 可以使用地图上任意一个魔法物品。
假设 WSM 当前位置为 (x,y)(x,y),魔法物品的位置为 (x0,y0)(x_0,y_0),使用魔法物品后移动到 (x,y)(x',y')
|魔法物品编号|移动后位置| |:-:|:-:| 11|x+x2=x0\frac{x+x'}{2}=x_0y+y2=y0\frac{y+y'}{2}=y_0| 22|x=xx'=xy+y2=y0\frac{y+y'}{2}=y_0| 33|x+x2=x0\frac{x+x'}{2}=x_0y=yy'=y|

WSM 每一步可以使用一个道具或一个魔法物品。请问至少需要多少步才能从坐标为 (1,1)(1,1) 的格子到达坐标为 (a,b)(a,b) 的格子?

输入格式

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

输出格式

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

2 2 2 2
0 0 8 0
1 2 4
1 1 2
2 2 1
1 1 4
2 2 4
2 1 4
1 2 3
2 1 1
2

提示

【样例 11 解释】

花费最小步数的路线为:

$\def\f#1{\xrightarrow{\bf 道具#1}} (1,1) \f{2} (2,1) \f{4} (2,2)$。

【数据范围】

本题采用捆绑测试。

请注意:任意一个格子内可能同时存在多个锁、钥匙、道具和魔法道具。

对于所有测试数据,保证:

  • 1n,m4001\le n,m\le4001an1\le a\le n1bm1\le b\le m
  • 1k1031\le k \le 10^30t30\le t\le 31p5×1051\le p\le 5\times 10^50q30\le q\le 3
  • 对于所有的锁、钥匙、道具、魔法物品,均有 1xn1\le x\le n1ym1\le y\le m
  • 对于所有的锁,均有 1r1091\le r\le 10^9
  • 对于所有的钥匙,均有 1r1091\le r\le 10^9
  • 对于所有的道具,均有 id{1,2,3,4}id\in\{1,2,3,4\}
  • 对于所有的魔法物品,均有 id{1,2,3}id\in\{1,2,3\}
子任务编号 n,mn,m\le kk\le tt\le pp\le qq\le 分数
11 22 00 1313 00 1010
22 1010 ^ 300300 33
33 ^ 100100 33 ^ 2020
44 400400 00 5×1055\times10^5 00 1010
55 ^ 33 ^ 33 2525
66 10310^3 ^ ^