#P12693. [集训队互测2025day16]problem

[集训队互测2025day16]problem

题目描述

给定 nn 个区间 [li,ri][l_i, r_i] 和一个常数 kk

对两个区间 [l,r][l, r][l,r][l', r'],定义函数 f([l,r],[l,r])f([l, r], [l', r']) 为区间 [l,r][l, r][l,r][l', r'] 的交集长度。

更形式化地,我们有:

$$f([l, r], [l', r']) = \begin{cases} 0 & \text{if } r' < l \, \text{or} \, l' > r \\ \min(r, r') - \max(l, l') + 1 & \text{otherwise} \end{cases} $$

给定 mm 组询问,每次给出区间 [L,R][L, R],你需要求出 i=1nf([L,R],[li,ri])k\sum_{i=1}^n f([L, R], [l_i, r_i])^k,对 109+710^9 + 7 取模。

输入格式

第一行包含三个整数 n,k,mn, k, m

接下来的 nn 行每行包含两个整数 li,ril_i, r_i

接下来的 mm 行每行包含两个整数 L,RL, R

输出格式

输出 mm 行,每行一个整数表示 i=1nf([L,R],[li,ri])k\sum_{i=1}^n f([L, R], [l_i, r_i])^k,对 109+710^9 + 7 取模。

样例

样例 1 输入

3 1 2
1 1
1 2
1 3
1 2
1 3

样例 1 输出

5
6

样例 1 解释

对于第一个询问,答案为 $f([1, 1], [1, 2]) + f([1, 2], [1, 2]) + f([1, 3], [1, 2]) = 1 + 2 + 2 = 5$。

对于第二个询问,答案为 $f([1, 1], [1, 3]) + f([1, 2], [1, 3]) + f([1, 3], [1, 3]) = 1 + 2 + 3 = 6$。

样例 2 输入

4 2 4
1 4
2 3
1 3
2 4
1 4
2 3
1 3
2 4

样例 2 输出

38
16
26
26

样例 2 解释

对于第一个询问,答案为 $f([1, 4], [1, 4])^2 + f([2, 3], [1, 4])^2 + f([1, 3], [1, 4])^2 + f([2, 4], [1, 4])^2 = 16 + 4 + 9 + 9 = 38$。

数据范围

对于所有数据,保证:1n,m1051 \le n, m \le 10^51k141 \le k \le 141lirin1 \le l_i \le r_i \le n1LRn1 \le L \le R \le n

测试点编号$n, m \le$$k$$r_i, R \le$特殊性质
$1 \sim 2$$2 \times 10^3$$\le 14$$n$
$3 \sim 4$$10^5$$=1$$n$
$5 \sim 10$$10^5$$=2$$n$
$11 \sim 12$$10^5$$\le 8$$\min{n, 600}$
$13 \sim 20$$10^5$$\le 8$$n$A
$21 \sim 23$$10^5$$\le 8$$n$
$24 \sim 25$$10^5$$\le 14$$n$

特殊性质 A:保证所有给出的区间两两之间要么相等,要么不存在包含关系。