QOJ.ac

QOJ

时间限制: 1 s 内存限制: 128 MB 总分: 100

#13964. 熊猫滑雪

统计

冬奥会即将到来,熊猫先生一直在刻苦训练以参加滑雪比赛。这项比赛在高度为 $H$ 的 Rar 山上进行。每个人都可以沿着中心路径从山顶滑到山脚。为了增加难度,赛道上设置了 $N$ 个旗门,每个旗门都有相应的得分,它们位于不同的高度,且分布在中心路径的左侧或右侧。目标是从山顶滑到山脚,并通过其中的一部分旗门以获得尽可能高的得分。

第 $i$ 个旗门位于高度 $Y_i$ 处,且在中心路径右侧 $X_i$ 单位长度处。如果 $X_i$ 为负数,则表示它在中心路径的左侧。通过第 $i$ 个旗门可以获得 $S_i$ 分。你可以多次通过同一个旗门,但只有第一次通过时才能获得分数。没有两个旗门位于同一个位置。

熊猫先生希望最大化他的得分。此外,熊猫先生深知自己不是一个优秀的滑雪者,可能会漏掉一些旗门。为了避免尴尬,熊猫先生对这些旗门进行了分析,并根据坡度、积雪量等因素,给每个旗门评定了一个易行度 $E_i$(评分越高越容易)。

具体来说,熊猫先生计算出,如果满足 $\max(|X_j - X_i|, Y_i - Y_j) \le E_i$ 且 $Y_i \ge Y_j$,他就可以从第 $i$ 个旗门移动到第 $j$ 个旗门。此外,从山顶可以到达任何旗门,从任何旗门也可以到达山脚。

面对下山时繁多的可能路径,熊猫先生感到有些无从下手,他需要你的帮助来找到一条能让他获得最大得分的路径。

输入格式

你的程序必须从标准输入中读取数据。

输入的第一行包含两个正整数 $N$ 和 $H$。

接下来的 $N$ 行,每行包含 4 个整数。其中第 $(i + 1)$ 行表示 $X_i, Y_i, S_i, E_i$。

输出格式

你的程序必须向标准输出输出一行,包含一个整数,表示熊猫先生可以获得的最大得分。

样例

输入样例 1

5 5
0 5 5 1
3 4 4 3
-2 3 3 2
1 1 4 4
-1 2 3 1

输出样例 1

8

说明

熊猫先生只有 3 条可选的路径:

  1. 山顶 $\to (0, 5) \to$ 山脚,得分:$5$
  2. 山顶 $\to (3, 4) \to (1, 1) \to$ 山脚,得分:$4 + 4 = 8$
  3. 山顶 $\to (-2, 3) \to (-1, 2) \to$ 山脚,得分:$3 + 3 = 6$

因此,最佳得分是 8。

子任务

每个测试点的最大运行时间为 1.0 秒。你的程序将在以下输入实例集上进行测试:

子任务 分值 $N$ 其他限制
1 7 $1 \le N \le 300$ 对于所有 $i$,$E_i = 200000$
2 8 $1 \le N \le 300$ 对于所有 $i$,$X_i = 0$;对于所有 $i, j$,$E_i = E_j$
3 11 $1 \le N \le 300$ 对于所有 $i \neq j$,$Y_i \neq Y_j$
4 13 $1 \le N \le 2000$ 对于所有 $i \neq j$,$Y_i \neq Y_j$
5 15 $1 \le N \le 50000$ 对于所有 $i \neq j$,$Y_i \neq Y_j$;对于所有 $i, j$,$E_i = E_j$
6 13 $1 \le N \le 50000$ 对于所有 $i, j$,$E_i = E_j$
7 16 $1 \le N \le 50000$ 对于所有 $i \neq j$,$Y_i \neq Y_j$
8 17 $1 \le N \le 200000$ 对于所有 $i \neq j$,$Y_i \neq Y_j$

对于所有测试用例:$-50000 \le X_i \le 50000$,$1 \le Y_i \le H \le 200000$,$1 \le S_i \le 10^6$,$1 \le E_i \le 200000$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.