#HK4083. 「ROI 2023 Day2」会议

「ROI 2023 Day2」会议

题目描述

译自 ROI 2023 Day2 T2. Конференция

秋明科学和教育协会组织了一次会议,计划在会议期间举办 nn 个活动,编号为 11nn。其中,第 ii 个活动由两个整数 lil_{i}rir_{i} 表示,分别是活动的开始时间和结束时间。

由于一些活动可能会重叠或甚至完全重合,一个人不一定能参加会议的所有活动。我们认为,如果 ri<ljr_{i}<l_{j}rj<lir_{j}<l_{i},那么活动 iijj 就不会相交。

我们称一个活动集合是相容的,如果这个集合中的任意两个不同的活动都不相交。设会议中相容活动集合的最大大小为 mm。我们称会议的饱和度为 nm\frac{n}{m}

由于资金缩减,会议的组织者决定会议的活动数量将减少一半。为了保持会议的饱和度不变,他们希望相容活动集合的最大大小也减少一半。幸运的是,在原来的会议计划中活动数量 nn,和最大相容活动集合的大小 mm 都为偶数。

请帮助组织者从原来计划的 nn 个活动中选择 n2\frac{n}{2} 个活动,使得这些活动的最大相容集合的大小为 m2\frac{m}{2}

输入格式

输入包含多组数据。第一行包含一个整数 t (1t5104)t\ (1 \leq t \leq 5\cdot 10^4),表示测试数据的组数。

每组测试数据的第一行包含一个整数 n (2n105)n\ (2 \leq n \leq 10^5),表示原计划中的活动数量,保证 nn 为偶数。

接下来的 nn 行给出活动的描述。在第 ii 行包含两个整数 li,ri (1li<ri109)l_{i}, r_{i}\ (1 \leq l_{i}<r_{i} \leq 10^{9}),表示第 ii 个活动的开始时间和结束时间。

保证原计划中相容活动集合的大小 mm 是偶数。

输出格式

对于每组测试数据,输出一行包含 n2\frac{n}{2} 个不同的活动编号,表示需要举办的活动。如果存在多个合法的答案,你可以输出任意一个。对于举办的活动,相容活动集合的最大大小应该等于 m2\frac{m}{2}

2
8
12 14
1 3
2 4
1 10
5 6
7 9
8 10
11 13
6
1 2
2 4
1 2
1 4
5 7
6 8
2 5 3 4
1 2 3

图片展示了活动的情况。开始时间为 lil_{i},结束时间为 rir_{i} 的活动用线段 [li,ri]\left[l_{i}, r_{i}\right] 表示。

上图表示样例中第一个测试数据的原始活动集合。其中一个可能的最大相容活动集合用粗虚线标出。

上图表示样例中第一个测试数据的答案对应的活动集合。其中一个可能的最大相容活动集合用粗虚线标出。

上图表示样例中第二个测试数据的原始活动集合。其中一个可能的最大相容活动集合用粗虚线标出。

上图表示样例中第二个测试数据的答案对应的活动集合。其中一个可能的最大相容活动集合用粗虚线标出。

数据范围与提示

tt 组测试数据中的 nn 之和为 NN

如果 lilj<rjril_{i} \leq l_{j}<r_{j} \leq r_{i},我们说活动 ii 覆盖活动 jj

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务编号 分值 NN 的限制 附加限制 子任务依赖
11 55 N105N \leq 10^5 任意两个活动不相交
22 2020 N20N \leq 20 00
33 77 N30N \leq 30 0,20, 2
44 1515 N500N \leq 500 每一对活动要么一个活动覆盖另一个,要么它们不相交;
存在一个活动,它覆盖所有其他活动
55 1515 N105N \leq 10^5 每一对活动要么一个活动覆盖另一个,要么它们不相交 1,41,4
66 1313 N500N \leq 500 0,240, 2\sim 4
77 1313 N5000N \leq 5000 0,24,60, 2\sim 4,6
88 1212 N105N \leq 10^5 0,170, 1\sim 7