Xor
题目描述
有 n 个区间 [l1,r1],[l2,r2],…,[ln,rn]。对于每个 x 从 0 到 2m−1,求满足以下条件的序列 a1,a2,…,an 的数量(模 998244353):
- 对于所有 i 从 1 到 n,有 li≤ai≤ri;
- a1⊕a2⊕⋯⊕an=x,其中 ⊕ 表示按位异或运算符。
输入格式
第一行包含两个整数 n 和 m。
接下来的 n 行中,第 i 行包含两个整数 li 和 ri(0≤li≤ri<2m)。
输出格式
对于每个 x 从 0 到 2m−1,定义:
- fx 为有效序列的数量,模 998244353;
- gx=fx⋅2xmod998244353。
这里,fx 和 gx 都是区间 [0,998244352] 内的整数。
设:
$$h = g_0 \oplus g_1 \oplus \cdots \oplus g_{2^m-1}.$$
输出一个整数——h 的值本身。不要进行模运算。
输入输出样例
2 2
0 2
1 3
22
5 3
3 7
1 3
0 2
1 5
3 6
9812
10 14
314 1592
653 5897
932 3846
264 3383
279 5028
841 9716
939 9375
105 8209
749 4459
230 7816
75032210
1 5
0 29
1073741823
说明/提示
对于第一个测试用例,fx 的值如下:
- f0=2,因为有 2 个有效序列:[1,1] 和 [2,2];
- f1=2,因为有 2 个有效序列:[0,1] 和 [2,3];
- f2=2,因为有 2 个有效序列:[0,2] 和 [1,3];
- f3=3,因为有 3 个有效序列:[0,3]、[1,2] 和 [2,1]。
gx 的值如下:
- g0=f0⋅20=2⋅20=2;
- g1=f1⋅21=2⋅21=4;
- g2=f2⋅22=2⋅22=8;
- g3=f3⋅23=3⋅23=24。
因此,输出的值为 2⊕4⊕8⊕24=22。
对于第二个测试用例,fx 的值如下:
- f0=120;
- f1=120;
- f2=119;
- f3=118;
- f4=105;
- f5=105;
- f6=106;
- f7=107。
数据范围
| 子任务 |
n≤ |
m≤ |
特殊性质 |
分数 |
| 1 |
100 |
9 |
|
5 |
| 2 |
15 |
15 |
| 3 |
2×105 |
18 |
li=1,ri=2k−1 (k=1,2,…,18) |
10 |
| 4 |
4000 |
15 |
|
20 |
| 5 |
2×105 |
| 6 |
18 |
30 |