Нахождение пар с наименьшими значениями XOR из списка

Я работаю над проблемой, в которой я должен использовать xor для все пары целых чисел в массиве, а затем найти K наименьшего целые числа, полученные в результате xor'ing. Размер массива может быть N = 100000 и поэтому K может быть довольно большим, но не более 250000.

Например, если N = 5 и K = 4,

наш массив равен {1 3 2 4 2}

Числа, полученные в результате xoring (1 и 3, 1-2, 1-4, 1-2, 3-2, 3-4, 3-2 и т. Д.)

3 3 2 5 0 1 6 1 6 7

Поскольку K = 4, мы должны вывести 4 наименьших целых числа. так что ответ будет 0 1 1 2.

Поскольку ограничение по времени составляет 2 секунды и очень мало, используется метод грубой силы Время ожидания поиска всех чисел истекло. Мой подход был неправильным, поэтому мне нужно помощь. Возможно, мы сможем использовать ограничение на K = 250000 и захотим узнать, является ли он можно получить K наименьших чисел без xoring всех целых чисел.

9
задан BlueRaja - Danny Pflughoeft 2 March 2012 в 16:20
поделиться