#L3267. 「USACO 2020.2 Platinum」Help Yourself

「USACO 2020.2 Platinum」Help Yourself

好的,我们重新整理题目,并在公式和数字前后加上 $


题目描述

题目译自 USACO 2020 February Contest, Platinum Problem 3. Help Yourself

Bessie 现在有 NN 条在一条数轴上的线段,第 ii 条线段覆盖了 [li,ri][l_i, r_i] 的所有实数。

定义一个线段集合的为所有至少被一条线段覆盖的实数。
定义一个线段集合的复杂度为该集合并的连通块个数KK 次方。

Bessie 现在想计算这 NN 条线段的所有 2N2^N 个子集的复杂度之和,结果对 109+710^9+7 取模。


输入格式

第一行两个空格分隔的整数 NN, KK

接下来 NN 行,每行两个空格分隔的整数 lil_i, rir_i


输出格式

输出所求的值模 109+710^9+7


样例

输入

3 2
1 6
2 3
4 5

输出

10

解释
各个非空子集的复杂度如下:

  • {[1,6]}1\{[1,6]\} \rightarrow 1
  • {[2,3]}1\{[2,3]\} \rightarrow 1
  • {[4,5]}1\{[4,5]\} \rightarrow 1
  • {[1,6],[2,3]}1\{[1,6],[2,3]\} \rightarrow 1
  • {[1,6],[4,5]}1\{[1,6],[4,5]\} \rightarrow 1
  • {[2,3],[4,5]}4\{[2,3],[4,5]\} \rightarrow 4
  • {[1,6],[2,3],[4,5]}1\{[1,6],[2,3],[4,5]\} \rightarrow 1

答案为 1+1+1+1+1+4+1=101 + 1 + 1 + 1 + 1 + 4 + 1 = 10


数据范围与提示

  • 1N1051 \le N \le 10^5
  • 2K102 \le K \le 10
  • 1li<ri2N1 \le l_i < r_i \le 2N

测试点 2 满足 N16N \le 16
测试点 3~5 满足 N1000N \le 1000, K=2K = 2
测试点 6~8 满足 N1000N \le 1000
测试点 9~16 满足 K=3+(T9)K = 3 + (T - 9),其中 TT 是测试点编号。