QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 1024 MB Puntuación total: 100

#8710. 火灾

Estadísticas

在古老的波罗的海宗教中,保持圣火燃烧至关重要。一位被称为 krivis 的祭司负责保护圣火不熄灭。他有许多值得信赖的助手,被称为 vaidilutės,他希望为她们制定一个轮班表来照看和保护圣火。他必须确保圣火时刻都有某位 vaidilutė 在照看。

Krivis 有自己的一套时间测量系统,每天有 $M$ 分钟。他的村子里有 $N$ 位 vaidilutės。第 $i$ 位 vaidilutė 的可能工作时间由两个整数 $s_i$ 和 $e_i$ 描述。数字 $s_i$ 是她一天中可以开始工作的最早时间,数字 $e_i$ 是她需要结束工作的最晚时间。时间以从当天开始计算的分钟数表示。注意,当 $s_i > e_i$ 时,该 vaidilutė 愿意通宵工作。

Krivis 请你选择一些 vaidilutės 并为她们安排轮班。被选中的 vaidilutė 开始轮班的时间不得早于 $s_i$,结束轮班的时间不得晚于 $e_i$。单次轮班的时间总是短于一整天。被选中的 vaidilutės 每天都会重复她们的轮班。

从一位 vaidilutė 交接给下一位会增加圣火熄灭的风险。因此,你希望最小化一天中发生交接的次数,并安排一个所需 vaidilutės 人数最少的方案。

题目描述

计算你需要选择的最少 vaidilutės 数量,使得圣火时刻得到照看。

输入格式

第一行包含两个整数 $N$ 和 $M$ —— 可用的 vaidilutės 数量和一天的长度(以分钟为单位)。

接下来 $N$ 行,第 $i$ 行包含两个整数 $s_i$ 和 $e_i$ —— 第 $i$ 位 vaidilutė 的最早开始时间和最晚结束时间。

输出格式

输出一个整数 —— 你需要选择的最少 vaidilutės 数量。如果无法按照要求选择 vaidilutės,则输出 $-1$。

样例

样例输入 1

4 100
10 30
30 70
20 40
60 20

样例输出 1

3

说明 1

你可以选择第 1、第 2 和第 4 位 vaidilutės 并安排轮班如下: 第 1 位 vaidilutė 从第 10 分钟工作到第 30 分钟。 第 2 位 vaidilutė 从第 30 分钟工作到第 70 分钟。 第 4 位 vaidilutė* 从第 70 分钟工作到次日的第 10 分钟。

样例输入 2

1 100
30 40

样例输出 2

-1

说明 2

无法制定时间表,因为只有一位 vaidilutė,且她无法工作一整天。

数据范围

  • $1 \le N \le 2 \cdot 10^5$
  • $2 \le M \le 10^9$
  • $0 \le s_i, e_i < M$ (对于所有 $1 \le i \le N$)
  • $s_i \neq e_i$ (对于所有 $1 \le i \le N$)

子任务

编号 分值 附加限制
1 14 $N \le 20$
2 17 $N \le 300$
3 9 $N \le 5\,000$
4 13 对于所有 vaidilutės,满足 $s_i < e_i$ 或 $e_i = 0$
5 21 对于每位 vaidilutė,从时间 $s_i$ 到时间 $e_i$ 的时间间隔长度相同
6 26 无附加限制

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.