luogu#P5471. [NOI2019] 弹跳

[NOI2019] 弹跳

题目背景

原题时限 2s

内存 128MB

题目描述

跳蚤国有 nn 座城市,分别编号为 1n1 - n11 号城市为首都。所有城市分布在一个w×hw \times h 范围的网格上。每座城市都有一个整数坐标 (x,y)(1xw,1yh)(x, y) (1 \leq x \leq w, 1 \leq y \leq h),不同城市的坐标不相同。

在跳蚤国中共有 mm 个弹跳装置,分别编号为 1m1 - m,其中 ii 号弹跳装置位于 pip_i 号城市,并具有参数 ti,Li,Ri,Di,Uit_i, L_i, R_i, D_i, U_i。利用该弹跳装置,跳蚤可花费 ti(ti>0)t_i (t_i > 0) 个单位时间,从 pip_i 号城市跳至坐标满足 $L_i \leq x \leq R_i, D_i \leq y \leq U_i (1 \leq L_i \leq R_i \leq w, 1 \leq D_i \leq U_i \leq h)$ 的任意一座城市。需要注意的是,一座城市中可能存在多个弹跳装置,也可能没有弹跳装置。

由于城市间距离较远,跳蚤们必须依靠弹跳装置出行。具体来说,一次出行将经过 若干座城市,依次经过的城市的编号可用序列 a0,a1,,aka_0, a_1, \cdots , a_k 表示;在此次出行中,依次利用的弹跳装置的编号可用序列 b1,b2,,bkb_1, b_2, \cdots , b_k 表示。其中每座城市可在序列 {aj}\{a_j\} 中出现任意次,每个弹跳装置也可在序列 {bj}\{b_j\} 中出现任意次,且满足,对于每个 j(1jk)j (1 \leq j \leq k),编号为 bjb_j 的弹跳装置位于城市 aj1a_{j-1},且跳蚤能通过该弹跳装置跳至城市 aja_j。我们称这是一次从城市 a0a_0 到城市 aka_k 的出行,其进行了 kk 次弹跳,共花费 i=1ktbi\sum^k_{i=1} t_{b_{i}} 个单位时间。

现在跳蚤国王想知道,对于跳蚤国除首都(11 号城市)外的每座城市,从首都出发,到达该城市最少需要花费的单位时间。跳蚤国王保证,对每座城市,均存在从首都到它的出行方案。

输入格式

第一行包含四个整数 n,m,w,hn, m,w, h,变量的具体意义见题目描述。

接下来 nn 行,第 ii 行包含两个整数 xi,yix_i, y_i,表示 ii 号城市的坐标。

接下来 mm 行,第 ii 行包含六个整数 pi,ti,Li,Ri,Di,Uip_i, t_i, L_i, R_i, D_i, U_i,分别表示 ii 号弹跳装置所在的城市编号、弹跳所需的时间、可到达的矩形范围。这些整数的具体意义见题目描述。

输出格式

输出 n1n - 1 行,第 ii 行包含一个整数,表示从跳蚤国首都到 i+1i + 1 号城市最少需要花费的单位时间。

5 3 5 5
1 1
3 1
4 1
2 2
3 3
1 123 1 5 1 5
1 50 1 5 1 1
3 10 2 2 2 2
50
50
60
123

提示

更多样例

您可以通过附加文件获得更多样例。

样例 2

见附加文件中的 jump/jump2.injump/jump2.ans

这组样例的数据范围为 n=104,m=2×104,w=104,h=1n = 10^4 , m = 2\times 10^4 , w = 10^4 , h = 1

样例 3

见附加文件中的 jump/jump3.injump/jump3.ans

这组样例的数据范围为 n=104,m=2×104,w=104,h=104n = 10^4 , m = 2\times 10^4 , w = 10^4 , h = 10^4

数据范围

对于所有测试点和样例满足:

$1 \leq n \leq 70000 , 1 \leq m \leq 150000 , 1 \leq w, h \leq n , 1 \leq t_i \leq 10000$。

每个测试点的具体限制见下表。

测试点编号 1n1\le n\le 1m1\le m\le 特殊限制
181\sim8 100100
9139\sim13 5×1045\times 10^4 10510^5 每个弹跳装置恰好可达一座城市,且 Li=RiL_i=R_iDi=UiD_i=U_i
141814\sim18 h=1h=1
192219\sim22 2.5×1042.5\times 10^4 5×1045\times 10^4
232523\sim25 7×1047\times 10^4 1.5×1051.5\times 10^5