В разделе "Статьи" можно найти обучающие статьи по информационным технологиям, а также узнать о новостях сервиса Quizful.
←
→
←
→
|
ссылка
May 17 19:13
Комментарий от elirijndael: Полностью согласен с valid_name. |
|
ссылка
May 17 18:47
Комментарий от Aleksandr89: Неплохой тест. Для тех кто хочет ещё попрактиковатьс... |
|
ссылка
May 17 15:13
Комментарий от dpdpdp: Поменяйте радиокнопки на чекбоксы. Во втором варианте про... |
|
ссылка
May 17 11:55
Комментарий от Torredo812: вот это подвох!!! забываешь что х увеличился))и думае... |
|
ссылка
May 17 10:50
Комментарий от lesha1980: Хороший вопрос. Получается, что проверяется только x в... |
Тестов: 130, вопросов: 5791. Пройдено: 126756 / 526576.
Для решения второй задачи необходимо разбить диапазон возможных значений чисел на несколько одинаковых по размеру поддиапазонов, например строго пополам. За один проход по массиву нужно вычислять XOR-суммы в поддиапазонах по-отдельности. Далее необходимо делить на поддиапазоны, объединение тех диапазонов, где XOR-сумма получилась не ноль. Как только при подсчёте XOR-сумм найдутся 2 диапазона с ненулевой XOR-суммой, это и будут искомые значение.
Например, для однобайтовых чисел и двух поддиапазонов: после первого прохода будут посчитанны XOR-суммы чисел диапазонов 0-127 и 128-255. Таким образом, если числа были в разных диапазонах, то обе XOR-суммы окажутся ненулевыми.
Для увеличения скорости поиска нужно использовать большее число поддиапазонов. Число проходов равно O(logA(B)), где A - число поддиапазонов (ячеек памяти для хранения XOR-сумм), а B - разрядность чисел в массиве.