Дан массив A из n целых чисел. Задача состоит в том, чтобы подсчитать количество способов разбить данные элементы массива на две непересекающиеся группы так, чтобы XOR элементов каждой группы был равен.
Примеры:
Input : A[] = { 1, 2, 3 } Output : 3 {(1), (2, 3)}, {(2), (1, 3)}, {(3), (1, 2)} are three ways with equal XOR value of two groups. Input : A[] = { 5, 2, 3, 2 } Output : 0
Обозначим XOR между всеми элементами в первой группе как G 1, а XOR между всеми элементами во второй группе как G 2 . Теперь следующее соотношение всегда корректно: G 1 ⊕ G 2 = A 1 ⊕ A 2 ⊕…. N A n .
Таким образом, для G 1 = G 2 xor между всеми элементами массива A равно 0. Таким образом, в этом случае ответ будет (2 n — 2) / 2 = (2 n-1 — 1). Во втором случае, когда XOR между всеми элементами не равен 0, мы не можем разделить массив. Ответ будет 0.
|
Джава
|
python3
|
C #
|
PHP
|
Выход:
3
Рекомендуемые посты:
- Разбейте массив на группы по 3, чтобы X3 делился на X2, а X2 делился на X1
- Количество способов разбить двоичное число таким образом, чтобы каждая часть делилась на 2
- Обратный массив в группах заданного размера
- Минимальная сумма, полученная из групп из четырех элементов из данного массива
- Обратный массив в группах заданного размера | Набор 2 (Вариации набора 1)
- Найти массив, используя разные XOR элементов в группах размера 4
- Разбейте массив и добавьте первую часть в конец
- Разбейте массив и добавьте первую часть в конец | Набор 2
- Разбить массив на три равных массива подмассива
- Разбить массив на два равных массива
- Минимальное значение, добавляемое в arr [i], чтобы массив мог быть разбит по индексу i с равной суммой
- Разбить массив на равные суммы по заданным условиям
- Разбить массив на нечетное количество сегментов нечетной длины
- Разбить массив на три подмассива так, чтобы сумма первого и третьего подмассива была равна и максимальна
- Разделить элементы массива на строго возрастающую и убывающую последовательность
0.00 (0%) 0 votes