luogu#P16380. [NordicOI 2026] Catching Apples
[NordicOI 2026] Catching Apples
背景
翻译来源:loj #5711. 「NordicOI 2026」Catching Apples。
3s,1024MB。
Subtask 0 为样例。
题目描述
苹果园可以看作是一条一维直线。共有 个苹果,第 个苹果在时间 掉落在位置 。
机器人的最大移动速度为 。为了接住第 个苹果,机器人必须在时间 恰好位于位置 。每个机器人可以从任意位置出发,在接住最后一个苹果后,它可以停在任意位置。
你的任务是使用尽可能少的机器人接住所有苹果。你还需要输出每个苹果由哪一个机器人接住。
输入格式
第一行包含一个整数 ,表示苹果的数量。
接下来 行,每行包含两个整数 和 ,分别表示第 个苹果掉落的时间和位置。
所有 坐标对都是不同的。
输出格式
输出一个整数 ,表示接住所有苹果所需的最少机器人数量。
接下来一行输出 个整数 ,其中 表示接住第 个苹果的机器人编号。
机器人编号必须在 到 之间,且 到 的每个编号都必须至少使用一次。
如果存在多种最优分配方案,你可以输出其中任意一种。
仅对于第 组数据,允许只输出整数 。
4
1 1
3 2
5 3
8 1
1
1 1 1 1
3
1 1
2 5
3 1
2
1 2 1
4
2 2
3 1
3 3
4 2
2
1 1 2 1
提示
评分
详细子任务附加限制及分值如下表所示:
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 最少机器人数量不超过 | ||
| 仅需输出机器人数量 ,无需提供分配方案 | ||
| 无附加限制 |
样例解释
在第一个样例中,一个机器人可以按顺序接住每个苹果。
在第二个样例中,苹果 和苹果 可以由同一个机器人接住,但苹果 必须由另一个机器人接住。
在第三个样例中,所需的最少机器人数量为 ,但存在多种不同的最优分配方案。