QOJ.ac

QOJ

حد الوقت: 10 s حد الذاكرة: 256 MB مجموع النقاط: 100

#8200. 严冬

الإحصائيات

巴伊托尼亚(Bajtocja)今年的冬天非常适合堆雪人。然而,这对我们的雪人爱好者朋友来说是好事,但对道路维护人员来说却不然,尤其是对负责清理城市主干道的巴伊塔扎(Bajtazar)而言。

全长 $\ell$ 米的道路每晚都会被积雪覆盖。勇敢的巴伊塔扎拥有一台电动除雪机,单次充电可清理 $k$ 米长的道路。道路沿线有 $n$ 个充电站可供巴伊塔扎使用。不幸的是,每个夜晚都会带来意外,大雪可能会损坏充电站,或者以某种神秘的方式修复已损坏的充电站(但每次至少会有一个充电站保持正常工作)。在第一次暴风雪之前,所有的充电站都是完好的。每天晚上,风也会带来麻烦,将除雪机吹到不同的位置。经过一夜,除雪机的电量会耗尽,必须重新充电。巴伊塔扎永远不知道第二天会发生什么。

我们将道路上的位置定义为距离道路起点的距离(以米为单位);第 $i$ 个充电站位于点 $x_i$。巴伊塔扎走过一米道路(无论是否在除雪)需要一秒钟。除雪机仅在清除积雪时消耗电量,巴伊塔扎手动移动它。在正常的充电站,除雪机的充电时间可以忽略不计。巴伊塔扎可以在道路上的任何点掉头。

巴伊塔扎每天早上清理整条道路所需的最短时间是多少?巴伊塔扎每天开始工作时都在除雪机所在的位置,但他可以在道路上的任意一点结束工作。

输入格式

第一行包含四个整数 $n, \ell, k$ 和 $d$ ($1 \le n \le 250\,000, 1 \le \ell \le 10^9, 1 \le k \le \ell, 1 \le d \le 250\,000$),分别表示充电站的数量、道路长度、除雪机电池容量以及巴伊塔扎需要除雪的天数。

第二行包含 $n$ 个整数 $x_1, x_2, \dots, x_n$ ($0 \le x_1 < x_2 < \dots < x_n \le \ell$),表示各充电站的位置。

接下来的 $3d$ 行包含 $d$ 个夜晚和白天的描述;每个描述由三行组成。

第一行包含三个整数 $z, u$ 和 $p$ ($0 \le z, u \le n, 0 \le p \le \ell$),分别表示前一天晚上神奇地修复的充电站数量、损坏的充电站数量,以及除雪机被风吹到的位置。

第二行包含一个递增序列,包含 $z$ 个整数 $a_1, \dots, a_z$ ($1 \le a_i \le n$),表示当天晚上被修复的充电站编号。这些充电站之前是损坏的。

第三行包含一个递增序列,包含 $u$ 个整数 $b_1, \dots, b_u$ ($1 \le b_i \le n$),表示当天晚上损坏的充电站编号。这些充电站之前是正常的。

对于每个夜晚,集合 $\{a_1, \dots, a_z\}$ 和 $\{b_1, \dots, b_u\}$ 是不相交的。请注意,描述中的第二行和/或第三行可能为空。

所有夜晚中 $z$ 和 $u$ 的总和不超过 $500\,000$。

输出格式

你的程序应输出 $d$ 行,每行一个整数,表示每天清理道路所需的最短时间。

样例

输入 1

3 5 2 1
2 3 5
0 1 3
2

输出 1

9

说明 1

在工作的第一天(也是唯一的一天),巴伊塔扎在点 $3$ 处的损坏充电站旁找到了除雪机,然后走到点 $2$,在那里给除雪机充电并向左清理了长度为 $2$ 的路段,然后回到点 $2$,充电并向右清理了长度为 $2$ 的路段,接着走到点 $5$,给除雪机充电并向左清理了长度为 $1$ 的路段。他在点 $4$ 结束工作;这总共花费了他 $9$ 秒。

子任务

子任务 条件 分值
1 $\ell \le 15, d \le 50$ 10
2 $\ell \le 500, d \le 50, k = 1$ 12
3 $\ell \le 5\,000\,000, d \le 20$ 8
4 充电站既不损坏也不修复 8
5 每天无法工作的充电站数量 $\le 100, k \le 50$ 20
6 $k = 1$ 18
7 无附加条件 24

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.