#L3494. 「JOISC 2021 Day3」保镖

    ID: 4962 传统题 4000ms 1024MiB 尝试: 7 已通过: 1 难度: 10 上传者: 标签>动态规划区间DP数据结构数据结构图论

「JOISC 2021 Day3」保镖

题目描述

题目译自 JOISC 2021 Day3 T2「ボディーガード / Bodyguard」

JOI 街是一条贯通东西的长街。我们将其抽象为一条数轴。

从现在起,将有 NN 个贵宾(VIP)来到 JOI 街并大逛特逛。VIP 们以 11NN 编号。VIP ii (1iN)(1 \le i \le N) 将会在时刻 TiT_i 从坐标 AiA_i 前往坐标 BiB_i。其速度是每单位时间 11 单位长度。

如果 Ai<BiA_i < B_i,VIP ii 将会以不变的速度在正方向上移动。类似地,如果 Ai>BiA_i > B_i,VIP ii 将会以不变的速度在负方向上移动。

一个保镖的工作是在 JOI 街上巡逻并保护 VIP 们。为了保护一个 VIP,很有必要和 TA 一起逛一会街,同时保护 TA。当然,允许保镖在他们逛街逛到一半时才开始保护,或在他们逛街结束前就停止保护。开始和停止保护的时刻不必为一个整数。 特别地,尽管可能有多个 VIP 在同一坐标,保镖也最多只能保护一个 VIP。

保镖可以在 JOI 街上以每单位时间最多 11 单位长度的速度随意走动。在他们停止保护一个 VIP 之后,可以去到另一个地方再开始保护另一个 VIP。如果一个保镖和 VIP ii 一起逛街,那么 VIP 将会对他们一起走过的距离的每单位长度给保镖 CiC_i 元小费。这里保证 CiC_i 是偶整数。

作为一个安保公司的员工,您正在计划 QQ 份保护 VIP 的方案。这些方案以 11QQ 编号。对于方案 jj (1jQ)(1 \le j \le Q),一个保镖在时刻 PjP_j 时从坐标 XjX_j 开始工作。您的任务是分别最大化每个方案中的保镖能够得到的总小费。

请您编写一个程序对于给定的 VIP 和保镖的信息,计算每一个方案中保镖的最大总小费。

在此题的限制下,可以证明答案一定是个整数。

输入格式

第一行,两个整数 NN, QQ。 以下 NN 行,每行四个整数 TiT_i, AiA_i, BiB_i, CiC_i。 以下 QQ 行,每行两个整数 PjP_j, XjX_j

输出格式

输出 QQ 行到标准输出。第 jj (1jQ)(1 \le j \le Q) 行应当包含一个整数表示方案 jj 中保镖能得到的最大总小费。

数据范围

对于所有数据,满足:

  • 1N28001 \le N \le 2\,800
  • 1Q30000001 \le Q \le 3\,000\,000
  • 1Ti10000000001 \le T_i \le 1\,000\,000\,000 (1iN)(1 \le i \le N)
  • 1Ai10000000001 \le A_i \le 1\,000\,000\,000 (1iN)(1 \le i \le N)
  • 1Bi10000000001 \le B_i \le 1\,000\,000\,000 (1iN)(1 \le i \le N)
  • 1Ci10000000001 \le C_i \le 1\,000\,000\,000 (1iN)(1 \le i \le N)
  • AiBiA_i \ne B_i (1iN)(1 \le i \le N)
  • CiC_i 是偶整数 (1iN)(1 \le i \le N)
  • 1Pj10000000001 \le P_j \le 1\,000\,000\,000 (1jQ)(1 \le j \le Q)
  • 1Xj10000000001 \le X_j \le 1\,000\,000\,000 (1jQ)(1 \le j \le Q)

各子任务分值及限制见下表:

子任务编号 分值 限制
1 66 Ti3000T_i \le 3\,000Ai3000A_i \le 3\,000Bi3000B_i \le 3\,000 (1iN)(1 \le i \le N)Pj3000P_j \le 3\,000Xj3000X_j \le 3\,000 (1jQ)(1 \le j \le Q)
2 77 Q=1Q=1
3 1515 Q3000Q \le 3\,000
4 2020 Q40000Q \le 40\,000
5 5252 -

样例 1

输入

2 2
1 2 1 4
3 1 3 2
1 2
3 3

输出

8
2

在方案 11 中,一个保镖可以按照以下方式得到 4+4=84+4=8 元:

  • 在时刻 11 从坐标 22 开始工作。
  • 在时刻 11 到时刻 22 间保护 VIP 11。由于他们一起走过了 11 单位长度,他得到 4×1=44 \times 1 = 4 元的小费。
  • 在时刻 22 到时刻 33 间留在坐标 11
  • 在时刻 33 到时刻 55 间保护 VIP 22。由于他们一起走过了 22 单位长度,他得到 2×2=42 \times 2 = 4 元的小费。

由于这是最大值,所以第一行输出 88

在方案 22 中,一个保镖可以按照以下方式得到 22 元:

  • 在时刻 33 从坐标 33 开始工作。
  • 在时刻 33 到时刻 44 间从坐标 33 移动到坐标 22
  • 在时刻 44 到时刻 55 间保护 VIP 22。由于他们一起走过了 11 单位长度,他得到 2×1=22 \times 1 = 2 元的小费。

由于这是最大值,所以第二行输出 22

这组样例满足子任务 1,3,4,51,3,4,5 的限制。

样例 2

输入

3 2
3 1 5 2
1 4 1 4
4 2 4 4
2 2
6 3

输出

15
0

在方案 11 中,一个保镖可以按照以下方式得到 4+1+8+2=154+1+8+2=15 元:

  • 在时刻 22 从坐标 22 开始工作。
  • 在时刻 22 到时刻 2.52.5 间从坐标 22 移动到坐标 2.52.5
  • 在时刻 2.52.5 到时刻 3.53.5 间保护 VIP 22。由于他们一起走过了 11 单位长度,他得到 4×1=44 \times 1 = 4 元的小费。
  • 在时刻 3.53.5 到时刻 44 间保护 VIP 11。由于他们一起走过了 0.50.5 单位长度,他得到 2×0.5=12 \times 0.5 = 1 元的小费。
  • 在时刻 44 到时刻 66 间保护 VIP 33。由于他们一起走过了 22 单位长度,他得到 4×2=84 \times 2 = 8 元的小费。
  • 在时刻 66 到时刻 77 间保护 VIP 11。由于他们一起走过了 11 单位长度,他得到 2×1=42 \times 1 = 4 元的小费。

由于这是最大值,所以第一行输出 1515

在方案 22 中,保镖在时刻 66 从坐标 33 开始工作。然而,TA 无法保护任何 VIP。因此最大总小费为 00 元。因此第二行输出 00

这组样例满足子任务 1,3,4,51,3,4,5 的限制。

样例 3

输入

5 5
8 1 4 10
8 3 7 6
1 4 6 2
3 9 5 4
6 1 9 6
7 6
6 8
1 3
9 4
2 4

输出

30
27
48
30
48

这组样例满足子任务 1,3,4,51,3,4,5 的限制。