Size: a a a

2020 December 10

AP

Artem Pelenitsyn in Haskell Start
кана
уверен что можно за О(1) сделать, в худшем случае за логарифм
за O(1) это без просмотра входных данных? это сильно...
источник

к

кана in Haskell Start
а я не знаю че за задача, я просто увидел выше фибоначчи на три элемента и предположил что наверняка должен быть O(1)
источник

AP

Artem Pelenitsyn in Haskell Start
Aragaer
не знаю про две минуты, я полчаса тупил 8)
я — с пол дня :)
источник

AL

Alexander Luzgarev in Haskell Start
Но ведь для чисел фибоначчи не бывает O(1)
источник

AP

Artem Pelenitsyn in Haskell Start
Alexander Luzgarev
Но ведь для чисел фибоначчи не бывает O(1)
да есть там левая формула с вещественными  числами. Она не совсем точная, но на практике работает...
источник

A

Aragaer in Haskell Start
ну вот "фибоначчи на три элемента" это нечто, что получилось после примерно получаса размышлений с листочком бумаги
источник

AL

Alexander Luzgarev in Haskell Start
Artem Pelenitsyn
да есть там левая формула с вещественными  числами. Она не совсем точная, но на практике работает...
Мало ли что формула
источник

AL

Alexander Luzgarev in Haskell Start
На заборе тоже формула написана
источник

AL

Alexander Luzgarev in Haskell Start
Асимптотика времени вычисления этой формулы как раз логарифм есличо
источник

AP

Artem Pelenitsyn in Haskell Start
Aragaer
ну вот "фибоначчи на три элемента" это нечто, что получилось после примерно получаса размышлений с листочком бумаги
мы с коллегой вначале написали почти такую же формулу как у вас ( с точностью до базовых случаев), но потом в итоге выбросили. А что у вас x? Количество единиц между тройками? У меня в итоге осталась формула, которая только один рекурсивный вызов делает, но я сам не понимаю как она работает, просто после длительного смотрения на примеры написалось...
источник

A

Aragaer in Haskell Start
длина группы, в которой разность между соседними элементами равна 1.
источник

AP

Artem Pelenitsyn in Haskell Start
Alexander Luzgarev
Асимптотика времени вычисления этой формулы как раз логарифм есличо
с моей точки зрения, если нет рекурсивного вызова, то сложность константная
источник

AL

Alexander Luzgarev in Haskell Start
Но ведь возведение в огромную степень это не константа
источник

A

Aragaer in Haskell Start
собственно наблюдение показало, что расстояния есть 1 и 3, расстояний 2 во входных данных нет. Получаются блоки, у которых первый и последний должны присутствовать, а промежуточные можно как-то повыбрасывать без потери валидности.
источник

A

Aragaer in Haskell Start
для корректности получается, что впереди к списку я добавил 0, потому что "группа", которая начинается с 1 должна включать такой "фиксированный ноль" впереди
источник

AP

Artem Pelenitsyn in Haskell Start
Alexander Luzgarev
Но ведь возведение в огромную степень это не константа
вообще, да, я забыл про степень. согласен
источник

A

Aragaer in Haskell Start
на примере, который там в тексте задачи приведен:
(0), 1, 4, 5, 6, 7, 10, 11, 12, 15, 16, 19, (22) разбивается на (0 1) (4 5 6 7) (10 11 12) (15 16) (19) - 22 можно не писать, оно всегда на 3 больше конца последней группы.
источник

A

Aragaer in Haskell Start
по длинам групп 2 4 3 2 1. Функция "фибоначчи на 3 числа" даст для них значения 1 4 2 1 1, которые надо перемножить и получается ответ 8.
источник

A

Aragaer in Haskell Start
по второму примеру получилось
источник

AP

Artem Pelenitsyn in Haskell Start
Aragaer
на примере, который там в тексте задачи приведен:
(0), 1, 4, 5, 6, 7, 10, 11, 12, 15, 16, 19, (22) разбивается на (0 1) (4 5 6 7) (10 11 12) (15 16) (19) - 22 можно не писать, оно всегда на 3 больше конца последней группы.
да, разбивать на группы очевидно, надо, просто я разбивал на группы уже разности (1 или 3), а не сами числа.
источник