题目描述
下記の 2 つの条件をともに満たす長さ N の整数列 A = (A1, A2, …, AN) の個数を 998244353 で割ったあまりを出力してください。
- 0 ≤ A1 ≤ A2 ≤ ⋯ ≤ AN ≤ M
- A1 ⊕ A2 ⊕ ⋯ ⊕ AN = X
ここで、⊕ はビットごとの排他的論理和を表します。
ビットごとの排他的論理和とは? 非負整数 A, B のビットごとの排他的論理和 A ⊕ B は、以下のように定義されます。 - A ⊕ B を二進表記した際の 2k (k ≥ 0) の位の数は、A, B を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3 ⊕ 5 = 6 となります (二進表記すると: 011 ⊕ 101 = 110)。
输入格式
入力は以下の形式で標準入力から与えられる。
N M X
输出格式
答えを出力せよ。
题目大意
给定 N,M,X ,询问有多少个长度为 N 的非负整数序列满足以下条件:
0≤A1≤A2≤...≤AN≤M
A1⊕A2⊕...⊕AN=X
其中 ⊕ 是异或操作,答案对 998244353 取模。( 1≤N≤200,0≤M<230 ,0≤X<230 )
提示
制約
- 1 ≤ N ≤ 200
- 0 ≤ M < 230
- 0 ≤ X < 230
- 入力はすべて整数
Sample Explanation 1
問題文中の 2 つの条件をともに満たす長さ N の整数列 A は、(0, 0, 2), (0, 1, 3), (1, 1, 2), (2, 2, 2), (2, 3, 3) の 5 個です。