Сгенерируйте пары в диапазоне [0, N-1] с суммой побитового И всех пар K

Опубликовано: 19 Сентября, 2022

Для данного целого числа N (которое всегда является степенью двойки), обозначающего длину массива, содержащего целые числа в диапазоне [0, N-1] ровно один раз, задача состоит в том, чтобы соединить эти элементы таким образом, чтобы сумма И пары равно K. т.е. ∑ (a i & b i ) = K.

Примечание. Каждый элемент может быть частью только одной пары.

Примеры:

Input: N = 4, K = 2
Output: [[0, 1], [2, 3]]
Explanation: Here N = 4 means array contains arr[] = {0, 1, 2, 3}, 
Pairs = [0, 1] and [2, 3]
(0 & 1) + (2 & 3) = 0 + 2 = 2.

Input: N = 8, K = 4
Output: [[4, 7], [1, 6], [2, 5], [0, 3]]

Подход: Решение задачи основано на следующем наблюдении:

There can be four cases as shown below:

  • Case 1 (If K = 0):
    • Because N is power of 2, the pairs of form {0+i, N-1-i} will always have bitwise AND as 0 [where i = 0 to (N-1)/2].
    • Here AND of every pair is going to be 0 which implies the sum of every AND pair is going to be 0.
    • After that for K = 0 form these pairs in the following form: [[0, N-1], [1, N-2] . . .].
  • Case 2 (If K > 0 and K < N-1):
    • Bitwise AND of K with N-1 is always K.
    • From the above pairs,  exchanging only elements of two pairs and make pairs [K, N-1] and [0, the one which was a pair of K]. So the AND will be K.
  • Case 3 (If K = N-1 and N = 4): 
    • In this case pairing is not possible print -1.
  • Case 4 (If K = N-1 and N > 4):
    • The maximum AND of any pair can be N-2 which can be formed by N-1 and N-2. So other two pairs can be formed to have bitwise AND =1 i.e. (N-3 with 1) and (0 with 2) because N-3 and 1 are always odd. The other pairs can be kept as it was in case-1. So total bitwise AND sum will be N-1.

Выполните шаги, указанные ниже:

  • Проверьте значения K и N.
  • Сформируйте пары, как в случае, упомянутом выше, в соответствии со значениями N и K.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(N)
Вспомогательное пространство: O(N)

РЕКОМЕНДУЕМЫЕ СТАТЬИ