Я работаю над проблемой, в которой я ожидаю, что я возьму xor всю пару целых чисел в массиве, а затем найду наименьшие числа K , полученные из xor'ing , Размер массива может быть N = 100000 и так К может быть довольно большим, но его ограничивается 250000.Поиск пар с наименьшими значениями XOR из списка
Например, , если N = 5 и К = 4,
наш массив {1 3 2 4 2}
числа, возникающие в результате операции Исключающее ИЛИ (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 секунды и очень плотный, с использованием подхода грубой силы xoring все номера будут тайм-аут. Мой подход был неправильным, и мне нужна помощь . Возможно, мы сможем использовать предел на K = 250000 и хотим знать, возможно ли получить 44 наименьших чисел без xoring всех целых чисел.
ОК, это действительно беспокоит меня. Все идеи, представленные до сих пор, могут означать, что вы переходите все возможные пары в некоторых крайних случаях. Предел «2 секунды» является произвольным, потому что на него влияет оборудование и т. Д. ... О каком оборудовании мы говорим? Какой процессор? Сколько памяти и т. Д.? – zmbq
И каков диапазон чисел? Мы говорим о 32-битных номерах? 16-битные номера (это было бы намного проще ...)? Все неотрицательные числа? – zmbq
Все являются неотрицательными 32-битными номерами и, как ожидается, будут работать на обычном ПК. Предел на K равен min (250000, N * (N-1)/2). – praveen