AT_abc288_h [ABC288Ex] A Nameless Counting Problem
Description
[problemUrl]: https://atcoder.jp/contests/abc288/tasks/abc288_h
下記の $ 2 $ つの条件をともに満たす長さ $ N $ の整数列 $ A\ =\ (A_1,\ A_2,\ \ldots,\ A_N) $ の個数を $ 998244353 $ で割ったあまりを出力してください。
- $ 0\ \leq\ A_1\ \leq\ A_2\ \leq\ \cdots\ \leq\ A_N\ \leq\ M $
- $ A_1\ \oplus\ A_2\ \oplus\ \cdots\ \oplus\ A_N\ =\ X $
ここで、$ \oplus $ はビットごとの排他的論理和を表します。
ビットごとの排他的論理和とは? 非負整数 $ A,\ B $ のビットごとの排他的論理和 $ A\ \oplus\ B $ は、以下のように定義されます。 - $ A\ \oplus\ B $ を二進表記した際の $ 2^k $ ($ k\ \geq\ 0 $) の位の数は、$ A,\ B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $、そうでなければ $ 0 $ である。
例えば、$ 3\ \oplus\ 5\ =\ 6 $ となります (二進表記すると: $ 011\ \oplus\ 101\ =\ 110 $)。
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 200 $
- $ 0\ \leq\ M\ \lt\ 2^{30} $
- $ 0\ \leq\ X\ \lt\ 2^{30} $
- 入力はすべて整数
### Sample Explanation 1
問題文中の $ 2 $ つの条件をともに満たす長さ $ N $ の整数列 $ A $ は、$ (0,\ 0,\ 2),\ (0,\ 1,\ 3),\ (1,\ 1,\ 2),\ (2,\ 2,\ 2),\ (2,\ 3,\ 3) $ の $ 5 $ 個です。