题目描述
给定正整数 N, M。
请计算满足以下条件的长度为 N 的正整数序列 A=(A1, A2, …, AN) 的个数,并将结果对 998244353 取模后输出。
- 1≤A1<A2<⋯<AN≤M
- 设 Bi=A1⊕A2⊕⋯⊕Ai,则 B1<B2<⋯<BN
其中,⊕ 表示按位异或(XOR)运算。
按位异或(XOR)运算的定义如下:对于非负整数 A, B,A⊕B 的二进制表示中,每一位 2k(k≥0)上的数字,如果 A 和 B 的该位中恰有一个为 1,则结果为 1,否则为 0。
例如,3⊕5=6(二进制表示为:011⊕101=110)。
一般来说,k 个非负整数 p1, p2, p3, …, pk 的按位异或为 $(\dots((p\_1\oplus p\_2)\oplus p\_3)\oplus\dots\oplus p\_k)$,并且可以证明其结果与顺序无关。
输入格式
输入从标准输入读取,格式如下:
N M
输出格式
请输出答案。
样例 1
输入
2 4
输出
5
样例 2
输入
4 4
输出
0
样例 3
输入
10 123456789
输出
205695670
说明/提示
限制条件
- 1≤N≤M<260
- 输入的所有数均为整数
样例解释 1
例如,当 (A1,A2)=(1,3) 时,A1<A2,且 B1=A1=1, B2=A1⊕A2=2,因此 B1<B2,满足条件。除此之外,(A1,A2)=(1,2), (1,4), (2,4), (3,4) 也满足条件。
由 ChatGPT 4.1 翻译