#P10793. 『SpOI - R1』Double Champions
『SpOI - R1』Double Champions
题目描述
本题包含多组数据。
现在有若干个格子排在一行上。
再给出 个区间,每个区间 可以覆盖 这个区间中的每一个格子(例如,区间 可以覆盖格子 )。
现在需要把这些区间分组,每个组带来的贡献为所有其旗下的区间的交的总长度。
你需要求出最少把这些区间分成多少组,才能使得每一组的贡献都 。如果不存在任何方案满足条件,输出 No
。
输入格式
第一行一个整数 ,表示数据组数。
对于每组数据,第一行两个整数 。
接下来 行,每一行两个整数 ,描述一个区间。
输出格式
对于每组数据,输出一行一个答案,表示最少要分的组数,或者字符串 No
,表示无解。
2
5 3
6 10
6 8
3 5
7 9
1 9
5 5
5 10
3 8
6 10
4 10
5 9
3
3
提示
样例 #1 解释
按照输入顺序将输入的区间依次编号为 。
可以将 个区间分为以下 组:。这样每一组的贡献即交集大小分别为 ,符合对每组贡献 的要求。可以证明, 组是所有符合条件的区间划分方案中组数最少的。
数据范围
请注意常数因子对程序效率的影响。
本题开启捆绑测试和子任务依赖。
对于 的数据,,,,。
Subtask | 得分 | 子任务依赖 | ||
---|---|---|---|---|
1 | 无 | |||
2 | 1 | |||
3 | 1,2 | |||
4 | 1,2,3 |