Любите ли Вы Brainstorm так,

Apr 13, 2008 21:30

как люблю его я.

Речь вовсе не о Латвийском коллективе. Сегодня Саша Куликов aka kirpich_spb предложил интересную задачку по алгоритмике ( Read more... )

Leave a comment

burunduk1 April 13 2008, 19:34:11 UTC
А условие можно?)

Reply

menato April 14 2008, 03:49:08 UTC
Имеется массив чисел длины n+1. Его элементы -- числа от 1 до n. Имея константное число дополнительных переменных и доступ к массиву только на чтение, найти за линейное время повторяющийся элемент. (Стандартно: битов - их уже log n, но операции с числами за O(1)).

Reply

worlds_owner April 14 2008, 07:57:16 UTC
Это что, шутка? Просто посчитай сумму.

Reply

menato April 15 2008, 17:15:53 UTC
Числа могут повторяться разное число раз, могут не встречаться. Просто есть одно ограничение на множество, откуда они берутся.

Reply

worlds_owner April 15 2008, 19:26:24 UTC
Что тогда "повторяющийся элемент"?

Reply

menato April 16 2008, 04:15:43 UTC
Не поверишь: тот, что встречается 2 раза :)

Reply

worlds_owner April 16 2008, 07:33:58 UTC
Да блин! Я правильно понимаю что нам дали n + 1 чисел от 1 до n, не перестановку и просят в произвольном порядке вывести все элементы которые встречаются больше одного раза?

Reply

menato April 16 2008, 10:21:58 UTC
Не все, а только одно и любое. Что читается не однозначно в условии?

Reply

sammarize April 15 2008, 10:40:28 UTC
Я ну, я так понимаю, что если операции с числами за O(1), то log(n) можно считать константой - логично? Тогда я вроде умею за n*log(n).

Reply

menato April 15 2008, 17:17:16 UTC
За n * log n мы тоже придумали каждый за минутку :) Но идея в том, что есть проц, который делает за константу, а вот если побитого, то уже log вылазит.

Reply


Leave a comment

Up