QOJ.ac

QOJ

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

#3123. 炉子

الإحصائيات

JOI-kun 的房间里有一个火炉。由于 JOI-kun 已经习惯了寒冷,当他独自一人在房间时,不需要打开火炉。但是,当有客人来访时,他需要打开火炉。

某一天,将有 $N$ 位客人来访。第 $i$ 位客人($1 \le i \le N$)将在时间 $T_i$ 到达,并在时间 $T_i + 1$ 离开。在任何时刻,最多只有一位客人访问 JOI-kun。

JOI-kun 可以随时打开或关闭火炉。每当他打开火炉时,都需要消耗一根火柴。JOI-kun 总共只有 $K$ 根火柴。因此,他最多只能打开火炉 $K$ 次。在一天开始时,火炉是关闭的。

当火炉开启时,需要消耗燃料。因此,JOI-kun 需要控制火炉的开关时间,他希望最小化火炉的总运行时间。

题目描述

给定客人来访的数据以及 JOI-kun 拥有的火柴数量,编写一个程序来计算火炉总运行时间的最小值。

输入格式

从标准输入读取以下数据:

  • 第一行包含两个空格分隔的整数 $N, K$。这表示有 $N$ 位客人将访问 JOI-kun,且 JOI-kun 拥有 $K$ 根火柴。
  • 接下来的 $N$ 行中的第 $i$ 行($1 \le i \le N$)包含一个整数 $T_i$。这表示第 $i$ 位客人将在时间 $T_i$ 到达,并在时间 $T_i + 1$ 离开。

输出格式

输出一行到标准输出。该行应包含火炉总运行时间的最小值。

数据范围

所有输入数据满足以下条件:

  • $1 \le N \le 100\,000$。
  • $1 \le K \le N$。
  • $1 \le T_i \le 1\,000\,000\,000$ ($1 \le i \le N$)。
  • $T_i < T_{i+1}$ ($1 \le i \le N - 1$)。

子任务

子任务 1 [20 分]

满足以下条件: $N \le 20$。 $1 \le T_i \le 20$ ($1 \le i \le N$)。

子任务 2 [30 分]

  • $N \le 5000$。

子任务 3 [50 分]

  • 无附加限制。

样例

样例输入 1

3 2
1
3
6

样例输出 1

4

说明 1

在此样例中,有三位客人来访。如果他按以下方式开关火炉,则火炉在客人来访时开启,他总共打开了两次火炉,总运行时间为 $(4 - 1) + (7 - 6) = 4$。

  • 第一位客人到达时,他在时间 1 打开火炉。
  • 第二位客人离开时,他在时间 4 关闭火炉。
  • 第三位客人到达时,他在时间 6 打开火炉。
  • 第三位客人离开时,他在时间 7 关闭火炉。

样例输入 2

3 1
1
2
6

样例输出 2

6

说明 2

在此样例中,JOI-kun 只能打开火炉一次。因此,他在第一位客人到达时(时间 1)打开火炉,并在第三位客人离开时(时间 7)关闭火炉。 注意,客人离开的时间可能与下一位客人到达的时间相同。

样例输入 3

3 3
1
3
6

样例输出 3

3

说明 3

在此样例中,JOI-kun 在每位客人到达时打开火炉,并在每位客人离开时关闭火炉。

样例输入 4

10 5
1
2
5
6
8
11
13
15
16
20

样例输出 4

12

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.