编程题
### 问题描述 小然在一次冒险中,发现了一种由 $N$ 个数字组成的神秘阵列 $A$。一开始,阵列中的所有数字都是 0。 小然可以进行 $Q$ 种类型的操作,每种操作由两个整数 $l_i$ 和 $r_i$(满足 $1 \leq l_i \leq r_i \leq N$)描述,操作的具体内容如下: - 对于满足 $l_i \leq j \leq r_i$ 的每个 $j$,将 $A_j$ 设置为 $A_j \oplus 1$,其中 $\oplus$ 表示按位异或操作。 现在,小然想知道,通过选择并执行这些操作的子集(可能一个也不选择,可能全部选择),他能得到多少种不同的阵列?由于答案可能非常大,请你将答案对 $998244353$ 取模后输出。 ### 输入格式 输入的第一行包含两个整数 $N$ 和 $Q$,表示阵列的长度和可以进行的操作的数量。 接下来 $Q$ 行,每行包含两个空格分隔的整数 $l_i$ 和 $r_i$,表示一种操作。 ### 输出格式 输出一行,包含一个整数,表示通过执行一些操作得到的不同阵列的数量对 $998244353$ 取模后的结果。 ### 样例输入 ```text 2 2 1 2 1 1 ``` ### 样例输出 ```text 4 ``` ### 说明 在这个测试用例中,可能得到的阵列有 $[0, 0]、[0, 1]、[1, 1]$ 和 $[1, 0]$。 ### 评测数据范围 $1 \leq N, Q \leq 10^5$,$1 \leq l_i \leq r_i \leq N$。
查看答案
赣ICP备20007335号-2