Preparando MOJI

Keep XOR Low

1000ms 262144K

Description:

You are given an array $$$a_1, a_2, \ldots, a_n$$$ and an integer $$$x$$$.

Find the number of non-empty subsets of indices of this array $$$1 \leq b_1 < b_2 < \ldots < b_k \leq n$$$, such that for all pairs $$$(i, j)$$$ where $$$1 \leq i < j \leq k$$$, the inequality $$$a_{b_i} \oplus a_{b_j} \leq x$$$ is held. Here, $$$\oplus$$$ denotes the bitwise XOR operation. As the answer may be very large, output it modulo $$$998\,244\,353$$$.

Input:

The first line of the input contains two integers $$$n$$$ and $$$x$$$ ($$$1 \leq n \leq 150\,000$$$, $$$0 \leq x < 2^{30}$$$). Here, $$$n$$$ is the size of the array.

The next line contains $$$n$$$ integers $$$a_1, a_2, \ldots, a_n$$$ ($$$0 \leq a_i < 2^{30}$$$): the array itself.

Output:

Print one integer: the number of non-empty subsets such that the bitwise XOR of every pair of elements is at most $$$x$$$, modulo $$$998\,244\,353$$$.

Sample Input:

4 2
0 1 2 3

Sample Output:

8

Sample Input:

3 6
4 2 2

Sample Output:

7

Sample Input:

4 0
1 1 2 2

Sample Output:

6

Informação

Codeforces

Provedor Codeforces

Código CF1616H

Tags

bitmaskscombinatoricsdata structuresdivide and conquerdpmath

Submetido 0

BOUA! 0

Taxa de BOUA's 0%

Datas 09/05/2023 10:20:37

Relacionados

Nada ainda