Количество подмножеств с максимально возможным значением XOR
Опубликовано: 20 Сентября, 2022
Дан массив arr[] , состоящий из N положительных целых чисел. Задача состоит в том, чтобы подсчитать количество различных непустых подмножеств arr[] , имеющих максимальное побитовое исключающее ИЛИ .
Примеры:
Input: arr[] = {3, 1}
Output: 1
Explanation: The maximum possible bitwise XOR of a subset is 3.
In arr[] there is only one subset with bitwise XOR as 3 which is {3}.
Therefore, 1 is the answer.Input: arr[] = {3, 2, 1, 5}
Output: 2
Подход: Эту проблему можно решить с помощью Bit Masking . Выполните следующие шаги, чтобы решить данную проблему.
- Инициализируйте переменную, скажем, maxXorVal = 0 , чтобы сохранить максимально возможное побитовое XOR подмножества в arr[].
- Пройдите по массиву arr[] , чтобы найти значение maxXorVal .
- Инициализируйте переменную, скажем, countSubsets = 0 , чтобы подсчитать количество подмножеств с максимальным побитовым XOR.
- После этого посчитайте количество подмножеств со значением maxXorVal.
- Верните countSubsets в качестве окончательного ответа.
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(2 ·16 )
Вспомогательное пространство : O(1)