На форумі обговорюються лише питання, пов'язані з олімпіадою
Ви не зайшли.
Сторінок: 1 2
Здесь я предлагаю обсудить решение задачи Pencils
Если вы собрались написать сообщение в этой теме пожалуйста прочитайте следующие правила:
1. Постить только после окончания приёма решений. (без комментариев)
2. Постите код только если вас об этом попросили. (обилие кода делает тему нечитабельной)
3. Обсуждайте только задачу, которая указана в теме.
Надеюсь эти простые правила сделают обмен мнениями более плодотворным.
Відредаговано FireTiger (2007-01-04 20:38:26)
Поза форумом
У кого какая сложность алгоритма в этой задаче?
Я пытался добиться O(N^2), но ничего лучше O(N^2*logN) не придумал.
Подкиньте идею, как можно было решить быстрее.
Поза форумом
xXx написав:
O(N^2) - hashtable
Намекни чуть-чуть конкретнее.
Поза форумом
AlexeyS написав:
У кого какая сложность алгоритма в этой задаче?
Я пытался добиться O(N^2), но ничего лучше O(N^2*logN) не придумал.
Подкиньте идею, как можно было решить быстрее.
У меня O(N^2*logN) сортировку можно переписать за линию - будет квадрат.
Поза форумом
alex_kasycky написав:
AlexeyS написав:
У кого какая сложность алгоритма в этой задаче?
Я пытался добиться O(N^2), но ничего лучше O(N^2*logN) не придумал.
Подкиньте идею, как можно было решить быстрее.У меня O(N^2*logN) сортировку можно переписать за линию - будет квадрат.
Кас, ты же сам говорил, что сортировка за линию работает дольше, чем QuickSort
Поза форумом
Я делаю так: ищу карандаши, которые УЖЕ совмещаются параллельным переносом. Если таких нет, вывожу N. Если есть, тогда я накладываю эти карандаши друг на друга и смотрю, сколько карандашей накладываются (Z).
Просматриваю все пары, нахожу максимальное Z (число карандашей, которые накладываются при параллельном переносе).Потом вывожу разность N - Z.
Вот и все. Если кто заметил неточность - высказывайте свое мнение.
Поза форумом
чтоб определить кол. одинаковых элементов в массиве не обязательно его сортировать...
просто последовательно перебирая элементы нада добавлять их в хеш табл и считать кол....
блин.... тока что обнаружил что я пролетел по этой задаче.... моя хеш табл размером 1000
Поза форумом
AlexeyS написав:
alex_kasycky написав:
AlexeyS написав:
У кого какая сложность алгоритма в этой задаче?
Я пытался добиться O(N^2), но ничего лучше O(N^2*logN) не придумал.
Подкиньте идею, как можно было решить быстрее.У меня O(N^2*logN) сортировку можно переписать за линию - будет квадрат.
Кас, ты же сам говорил, что сортировка за линию работает дольше, чем QuickSort
Во-первых не всегда, во-вторых мы сейчас о сложности алгоритма, а не о времени его работы.
Поза форумом
guest1 написав:
Я делаю так: ищу карандаши, которые УЖЕ совмещаются параллельным переносом. Если таких нет, вывожу N. Если есть, тогда я накладываю эти карандаши друг на друга и смотрю, сколько карандашей накладываются (Z).
Просматриваю все пары, нахожу максимальное Z (число карандашей, которые накладываются при параллельном переносе).Потом вывожу разность N - Z.
Так сложность в этом алгоритме O(N^2*logN).
Вопрос, как можно было решить за O(N^2).
Поза форумом
xXx написав:
O(N^2) - hashtable
Ну у тебя ведь амортизированый квадрат. Тоесть Омега а не О
Короче это врядли быстрей чем сортировка за линию.
Поза форумом
alex_kasycky написав:
xXx написав:
O(N^2) - hashtable
Ну у тебя ведь амортизированый квадрат. Тоесть Омега а не О
Короче это врядли быстрей чем сортировка за линию.
это будет быстрее, причём на порядок...
если так рассудать, то квиксорт работает медленнее чем сорт слиянием....
Відредаговано xXx (2007-01-05 09:49:39)
Поза форумом
guest1 написав:
Простите за безграмотность но что такое O(N^2)? и что такое O в частности?
Так обозначается сложность алгоритма. По ней можно оценить скорость работы программы. Подробно про это написано, например, в книге: "Алгоритмы: построение и анализ" авторы Кормен, Томас и др.
Поза форумом
xXx написав:
O(N^2) - hashtable
+1
Только табличка у меня на 1000000... чисто на всякий случай
Поза форумом
Да але на рішення задачі недостатньо одного масиву на 1000000. Для правильного рішення необхідно два масива????
Поза форумом
Yevgeniy написав:
Да але на рішення задачі недостатньо одного масиву на 1000000. Для правильного рішення необхідно два масива????
Зачем???
Поза форумом
Ну не знаю... мож я чёт не так делал... ну да ладно... посмотрим по результатам.
Поза форумом
FireTiger написав:
Yevgeniy написав:
Да але на рішення задачі недостатньо одного масиву на 1000000. Для правильного рішення необхідно два масива????
Зачем???
Для знаходження схожих частин малюнків нам потрібно два знаження вираховувати: це dx i dy між кожною парою олівців, які можна сумістити при паралельному переносі. Далі потрібно знайти в цих масивах максимально можливу кількість елементів Z для яких dx[i] == dx[j] s i dy[i] == dy[j], i != j.І результат тоді N - Z
Поза форумом
Yevgeniy написав:
FireTiger написав:
Yevgeniy написав:
Да але на рішення задачі недостатньо одного масиву на 1000000. Для правильного рішення необхідно два масива????
Зачем???
Для знаходження схожих частин малюнків нам потрібно два знаження вираховувати: це dx i dy між кожною парою олівців, які можна сумістити при паралельному переносі. Далі потрібно знайти в цих масивах максимально можливу кількість елементів Z для яких dx[i] == dx[j] s i dy[i] == dy[j], i != j.І результат тоді N - Z
Ну, я так и делал ...
Поза форумом
Yevgeniy написав:
FireTiger написав:
Yevgeniy написав:
Да але на рішення задачі недостатньо одного масиву на 1000000. Для правильного рішення необхідно два масива????
Зачем???
Для знаходження схожих частин малюнків нам потрібно два знаження вираховувати: це dx i dy між кожною парою олівців, які можна сумістити при паралельному переносі. Далі потрібно знайти в цих масивах максимально можливу кількість елементів Z для яких dx[i] == dx[j] s i dy[i] == dy[j], i != j.І результат тоді N - Z
логической связи не уловил.... как это относится к хеш-таблицам?
+ dx и dy можно хранить в одном масиве например dxy, dxy[i] = dx[i]|(dy[i]<<16)
Поза форумом
Сторінок: 1 2