160922 recipes — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Новая страница: «* swap Представьте, что числа были бы 10^6. Тогда бы задача решалась просто массивом, верно? Н…»)
 
м
Строка 9: Строка 9:
  
 
Помните, что табличка должна быть больше, чем число элементов в ней, но помните и то, что чем больше съедено памяти, тем медленнее программа.
 
Помните, что табличка должна быть больше, чем число элементов в ней, но помните и то, что чем больше съедено памяти, тем медленнее программа.
 +
 +
Попробуйте сначала написать решение с массивом,
 +
для маленьких чисел, убедитесь, что оно проходит сколько-то тестов, затем приступайте к решению для больших чисел.
  
 
* mice
 
* mice
Строка 27: Строка 30:
 
* painter
 
* painter
 
Обратите внимание на размер входных данных!!
 
Обратите внимание на размер входных данных!!
 +
 +
Есть как минимум три разных разумных способа решить эту задачу.
  
 
* fastadd
 
* fastadd
 
Разобрана на практике последней (4a). Очень короткий и простой код, он почти весь в разборе практики приведен.
 
Разобрана на практике последней (4a). Очень короткий и простой код, он почти весь в разборе практики приведен.
  
Кстати, можно не бояться создавать массив размера 2^{24}.
+
Кстати, можно не бояться создавать и честно заполнять нужными данными массив размера 2^{24}.
  
 
А еще вы теперь умеете брать по модулю :)
 
А еще вы теперь умеете брать по модулю :)

Версия 04:37, 28 сентября 2016

  • swap

Представьте, что числа были бы 10^6. Тогда бы задача решалась просто массивом, верно?

Но числа 10^9, нельзя массив с такими большими индексами. И вот тут на помощь приходит хеш-таблица.

В конспекте есть по сути готовый код.

Без readInt/writeInt вряд ли зайдет.

Помните, что табличка должна быть больше, чем число элементов в ней, но помните и то, что чем больше съедено памяти, тем медленнее программа.

Попробуйте сначала написать решение с массивом, для маленьких чисел, убедитесь, что оно проходит сколько-то тестов, затем приступайте к решению для больших чисел.

  • mice

Похожа на meeting с прошлой недели, решение которой выложено.

Вообще выложены все решения всех старых задач. Туда можно и полезно смотреть.

  • evalpm, evalhard

Есть набросок кода в конспетке. Можно заглянуть еще в прошлогодний конспект (стр. 26), он тоже есть на страничке вики (уже).

Не ленитесь тестировать.

  • isgood

Решается за O(n).

Может помочь разбор доп4a практики. Но определить, есть ли у подстроки хороший циклический сдвиг, может быть даже проще, чем хороша ли сама подстрока.

  • painter

Обратите внимание на размер входных данных!!

Есть как минимум три разных разумных способа решить эту задачу.

  • fastadd

Разобрана на практике последней (4a). Очень короткий и простой код, он почти весь в разборе практики приведен.

Кстати, можно не бояться создавать и честно заполнять нужными данными массив размера 2^{24}.

А еще вы теперь умеете брать по модулю :)