#P10793. 『SpOI - R1』Double Champions

    ID: 10168 Type: RemoteJudge 1250ms 512MiB Tried: 0 Accepted: 0 Difficulty: 4 Uploaded By: Tags>动态规划,dp贪心单调队列O2优化排序

『SpOI - R1』Double Champions

题目描述

本题包含多组数据。

现在有若干个格子排在一行上。

再给出 nn 个区间,每个区间 ii 可以覆盖 [li,ri][l_i,r_i] 这个区间中的每一个格子(例如,区间 [1,2][1,2] 可以覆盖格子 1,21,2)。

现在需要把这些区间分组,每个组带来的贡献为所有其旗下的区间的交的总长度。

你需要求出最少把这些区间分成多少组,才能使得每一组的贡献都 w\geq w。如果不存在任何方案满足条件,输出 No

输入格式

第一行一个整数 TT,表示数据组数。

对于每组数据,第一行两个整数 n,wn,w

接下来 nn 行,每一行两个整数 li,ril_i,r_i,描述一个区间。

输出格式

对于每组数据,输出一行一个答案,表示最少要分的组数,或者字符串 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 解释

按照输入顺序将输入的区间依次编号为 ,,,,①,②,③,④,⑤

可以将 55 个区间分为以下 33 组:{,},{},{③⑤}\{①,④\},\{②\},\{③⑤\}。这样每一组的贡献即交集大小分别为 3,3,33,3,3,符合对每组贡献 3\geq 3 的要求。可以证明,33 组是所有符合条件的区间划分方案中组数最少的。

数据范围

请注意常数因子对程序效率的影响。

本题开启捆绑测试和子任务依赖。

对于 100%100\% 的数据,1T201\leq T\leq 201n2×1051\leq n\leq 2\times 10^50w1060\leq w\leq 10^61liri1061\leq l_i\leq r_i\leq 10^6

Subtask nn\leq w,li,riw,l_i,r_i\leq 得分 子任务依赖
1 88 1515 1010
2 1111 2020 1
3 1.5×1031.5\times 10^3 10410^4 2525 1,2
4 2×1052\times 10^5 10610^6 5555 1,2,3