#CF1774G. Segment Covering

Segment Covering

Segment Covering

  • 时间限制:2 秒
  • 内存限制:256 MiB

题目描述

ChthollyNotaSeniorious 给了 DataStructures 一条数轴,上面有 mm 个互不相同的线段。设 f(l,r)f(l,r) 表示选择偶数个线段,使得它们的并恰好为 [l,r][l,r] 的方案数,g(l,r)g(l,r) 表示选择奇数个线段,使得它们的并恰好为 [l,r][l,r] 的方案数。

ChthollyNotaSeniorious 向 DataStructures 提出了 qq 个问题。在每个询问中,ChthollyNotaSeniorious 会给出两个数 l,rl, r,现在他希望你能帮他计算 f(l,r)−g(l,r)f(l,r)-g(l,r) 模 998 244 353998\,244\,353 的值,这样他就不会让她失望了。

输入格式

输入的第一行包含两个整数 mm(1≤m≤2⋅1051 \leq m \leq 2 \cdot 10^5)和 qq(1≤q≤2⋅1051 \leq q \leq 2 \cdot 10^5),分别表示线段的数量和询问的数量。

接下来的 mm 行中,第 ii 行包含两个整数 xix_i 和 yiy_i(1≤xi<yi≤1091 \leq x_i < y_i \leq 10^9),表示一条线段 [xi,yi][x_i, y_i]。

保证所有线段互不相同。更正式地说,不存在 1≤i<j≤m1 \leq i < j \leq m 使得 xi=xjx_i = x_j 且 yi=yjy_i = y_j。

接下来的 qq 行中,第 ii 行包含两个整数 lil_i 和 rir_i(1≤li<ri≤1091 \leq l_i < r_i \leq 10^9),描述一次询问。

输出格式

对于每个询问,输出一个整数,表示 f(li,ri)−g(li,ri)f(l_i,r_i)-g(l_i,r_i) 模 998 244 353998\,244\,353 的结果。

样例输入 1

4 2
1 3
4 6
2 4
3 5
1 4
1 5

样例输出 1

1
0

提示

在第一个询问中,我们需要计算 f(1,4)−g(1,4)f(1, 4) - g(1, 4)。唯一一个线段子集的并为 [1,4][1, 4],即 {[1,3],[2,4]}\{[1, 3], [2, 4]\},所以 f(1,4)=1,g(1,4)=0f(1, 4) = 1, g(1, 4) = 0。

在第二个询问中,我们需要计算 f(1,5)−g(1,5)f(1, 5) - g(1, 5)。唯一的线段子集的并为 [1,5][1, 5] 的有 {[1,3],[2,4],[3,5]}\{[1, 3], [2, 4], [3, 5]\} 和 {[1,3],[3,5]}\{[1, 3], [3, 5]\},所以 f(1,5)=1,g(1,5)=1f(1, 5) = 1, g(1, 5) = 1。

数据范围

对于所有数据,1≤m,q≤2×1051\le m,q\le2\times10^5,1≤xi<yi≤1091\le x_i<y_i\le10^9,1≤li<ri≤1091\le l_i<r_i\le10^9,且输入线段两两不同。

子任务编号 分值 特殊限制
1 30 m≤18m\le18 且 q≤30q\le30
2 m,q≤1000m,q\le1000 且 mq≤106mq\le10^6
3 40 无特殊限制

每个测试点独立计分。