#P12502. 「ROI 2025 Day1」天狼星的换班
「ROI 2025 Day1」天狼星的换班
题目描述
译自 ROI 2025 Day1 T2. Пересменка в Сириусе
你有没有好奇过,为什么天狼星教育中心的两期项目之间总会隔上几天?答案很简单:员工们需要在这段时间里把宿舍楼的房间整理一新,为下一期项目做准备!
天狼星酒店的某层楼有 个房间,编号从 到 。每次教育项目结束后,这些房间都需要进行维修。
为此,中心雇佣了 名员工,编号从 到 。每位员工负责一段房间范围,从 到 (包含两端),并且每人有一个固定的起点房间 ,他们必须从这个房间开始检查和维修。不同员工的负责范围可能会有重叠,甚至完全相同。
员工们会按照某种顺序从基地出发去维修房间。每次只有前一位员工返回基地后,下一位员工才会出发。
当第 位员工出发时,他会先前往起点房间 :
- 如果这个房间仍需维修,员工会修好它,然后继续检查并维修他负责范围 到 内所有仍需维修的房间。完成后,他返回基地。此时,他负责的整个范围内的房间都不再需要维修。
- 如果起点房间 已经被其他先出发的员工修好,员工会直接返回基地,寄希望于同事们已经顺便修好了他负责范围内的其他房间。但实际上,他负责范围内可能仍有房间需要维修。
你的任务是判断,是否能通过合理安排员工的出发顺序,让所有 到 的房间最终都被修好。
输入格式
输入包含多组数据。第一行是一个整数 ,表示数据组数。接着是每组数据的描述。
每组数据的第一行包含两个整数 和 ,分别表示房间数量和员工数量。
接下来的 行,每行包含三个整数 ,分别表示第 位员工负责范围的起点房间、必须开始检查的起点房间,以及范围的终点房间。
保证所有数据组的 和 之和均不超过 。
输出格式
对每组数据,输出单独的一行。如果可以修好所有房间,输出 YES
;否则输出 NO
。
2
5 2
3 4 5
1 3 3
5 3
1 2 4
2 4 5
3 3 3
YES
NO
提示
样例解释
在第一组数据中,先派第 位员工出发,他会修好房间 到 。然后派第 位员工出发,他前往房间 ,发现它仍需维修,于是修好他负责范围内剩余的房间。最终,所有房间都被修好。
在第二组数据中,无法找到一个合适的员工出发顺序来修好所有房间。
数据范围
记 为所有数据组的 之和, 为所有数据组的 之和。
详细子任务附加限制及分值如下表所示。其中子任务 是样例。
子任务 | 分值 | 附加限制 |
---|---|---|
, | ||
, | ||
, | ||
, | ||
, | ||
, | ||
,每个员工负责的范围包含房间 或 | ||
,每个员工负责的范围内至少有一个房间只由他负责 | ||
每个员工负责的范围内至少有一个房间只由他负责 | ||
,任意 , | ||
,任意 等于 或 | ||
, | ||
无附加限制 |