本题目满分 150 分。
题目名称来自 はぐ (feat. 初音ミク & 可不) 的歌词。
题目描述
MIMI 给了你四个非负整数 N,L,R,K,问有多少个长为 N 的序列 a 满足:
- L≤ai≤R
 
- $a_1\text{ xor }a_2\text{ xor }\cdots\text{ xor }a_N=K$。
 
答案对 998244353 取模。两个长为 N 的序列 a,b 不同,当且仅当存在 1≤i≤N 使得 ai=bi。
输入格式
本题有多组数据。 第一行一个正整数 T 表示数据组数。
对于每组数据会输入一行四个非负整数 N,L,R,K。
输出格式
对于每组数据,输出一行一个非负整数表示符合条件的序列个数对 998244353 取模的值。
样例 1 输入
4
3 1 3 0
4 2 3 1
4 1 3 0
4 0 2 3
样例 1 输出
6
8
21
20
样例 1 说明
对于第一组数据,符合条件的 a 序列有且仅有 (1,2,3) 的 6 种不同排列。
对于第二组数据,符合条件的序列 a 有且仅有 (2,2,2,3) 的 4 种不同排列与 (2,3,3,3) 的 4 种不同排列,因此答案为 4+4=8。
样例 2
见附加文件。
测试点约束
对于 100% 的数据,$1\le T\le 10^4,0\le L\le R<2^{60},0\le K<2^{60},1\le N\le 10^{18}$。
每个测试点的详细约束见下表:
| 子任务编号 | 
T | 
N | 
特殊性质 | 
分数 | 
依赖子任务 | 
| Subtask #1 | 
≤5 | 
≤5 | 
R,K≤7 | 
14 | 
无 | 
| Subtask #2 | 
≤100 | 
R,K≤100 | 
15 | 
1 | 
| Subtask #3 | 
≤1000 | 
R,K≤1000 | 
16 | 
2 | 
| Subtask #4 | 
≤106 | 
R,K≤106 | 
15 | 
3 | 
| Subtask #5 | 
≤100 | 
≤1000 | 
R,K≤109,L=0 | 
8 | 
无 | 
| Subtask #6 | 
≤109 | 
24 | 
5 | 
| Subtask #7 | 
≤500 | 
R,K≤109 | 
13 | 
4,6 | 
| Subtask #8 | 
≤1018 | 
无 | 
20 | 
7 | 
| Subtask #9 | 
≤104 | 
25 | 
8 |