#A. 增加前缀XOR

    Type: RemoteJudge 2000ms 1024MiB

增加前缀XOR

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题面翻译

给定 m,nm,n,希望构造长度为 mm 的数列 aa 满足条件:

  • 1a1<a2<amn1\le a_1<a_2<\dots a_m\le n
  • bi=j=1ib_i=\oplus_{j=1}^i,那么 bb 是单增的。

求方案个数。

题目描述

正整数 N, M N,\ M が与えられます。

長さ N N の正整数列 A=(A1, A2, , AN) A=(A_1,\ A_2,\ \dots,\ A_N) であって、以下の条件を満たすものの個数を 998244353 998244353 で割った余りを求めてください。

  • 1  A1 < A2 <  < AN  M 1\ \leq\ A_1\ <\ A_2\ <\ \dots\ <\ A_N\ \leq\ M
  • Bi = A1  A2    Ai B_i\ =\ A_1\ \oplus\ A_2\ \oplus\ \dots\ \oplus\ A_i としたとき、 B1 < B2 <  < BN B_1\ <\ B_2\ <\ \dots\ <\ B_N

ただしここで、 \oplus はビット単位 XOR \mathrm{XOR} 演算を表します。

ビット単位 XOR \mathrm{XOR} 演算とは 非負整数 A, B A,\ B のビット単位 XOR \mathrm{XOR} A  B A\ \oplus\ B は、以下のように定義されます。

  • A  B A\ \oplus\ B を二進表記した際の 2k 2^k (k  0 k\ \geq\ 0 ) の位の数は、A, B A,\ B を二進表記した際の 2k 2^k の位の数のうち一方のみが 1 1 であれば 1 1 、そうでなければ 0 0 である。

例えば、3  5 = 6 3\ \oplus\ 5\ =\ 6 となります (二進表記すると: 011  101 = 110 011\ \oplus\ 101\ =\ 110 )。 一般に k k 個の非負整数 p1, p2, p3, , pk p_1,\ p_2,\ p_3,\ \dots,\ p_k のビット単位 XOR \mathrm{XOR} ( ((p1  p2)  p3)    pk) (\dots\ ((p_1\ \oplus\ p_2)\ \oplus\ p_3)\ \oplus\ \dots\ \oplus\ p_k) と定義され、これは p1, p2, p3, , pk p_1,\ p_2,\ p_3,\ \dots,\ p_k の順番によらないことが証明できます。

输入格式

入力は以下の形式で標準入力から与えられます。

N N M M

输出格式

答えを出力してください。

样例 #1

样例输入 #1

2 4

样例输出 #1

5

样例 #2

样例输入 #2

4 4

样例输出 #2

0

样例 #3

样例输入 #3

10 123456789

样例输出 #3

205695670

提示

制約

  • 1  N  M < 260 1\ \leq\ N\ \leq\ M\ <\ 2^{60}
  • 入力される値はすべて整数

Sample Explanation 1

例えば (A1, A2)=(1, 3) (A_1,\ A_2)=(1,\ 3) とすると A1 < A2 A_1\ <\ A_2 であり、B1=A1=1, B2=A1 A2=2 B_1=A_1=1,\ B_2=A_1\oplus\ A_2=2 より B1 < B2 B_1\ <\ B_2 が成り立つので条件を満たします。 この他には (A1, A2)=(1, 2), (1, 4), (2, 4), (3, 4) (A_1,\ A_2)=(1,\ 2),\ (1,\ 4),\ (2,\ 4),\ (3,\ 4) が条件を満たします。

12.10模拟赛

Not Attended
Status
Done
Rule
Ledo
Problem
5
Start at
2023-12-10 8:30
End at
2023-12-10 18:30
Duration
10 hour(s)
Host
Partic.
9