Всем привет!
Кто писал, или просто смотрел задачи - у меня 2 вопроса:
(Кто хочет посмотреть - вот ссылки:
1. Какой самый плохой тест для второй? У меня 10000 шагов пересчета возможных позиций на всем поле улетели. Какой тест дает больше? (UPD: упал на тесте ".CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.CKC.", 50, 49 дает в ответе 29401, обидно)
2. Как просто решить третью? Я придумал алгоритм, но не очень простой. А там ее даже синие сдавали. Либо я недооцениваю синих, либо может быть есть относительно простое решение задачи?
Спасибо!
Перед отправкой добавил 0 и сразу убрал - зачем лишний раз программу гонять )
P.S. Кстати, я одного свалил именно на том, что он решал итерациями, но поставил их мало.
P.S. И незачем так ОРАТЬ :)
у всех календарь на http://topcoder-calendar.appspot.com/ поломался?
я во время контеста тупил с 500, и даже не прочел 1000. 1000 оказалась для меня очень простой, заметим что d(n) = 1 + (n - 1) % 9 я это давно знаю, с какой-то задачки помню. f(x) = 1 если x представимо, f(x) = 0 иначе. последовательность f(1), f(2) .... f(n) циклична, это как-то интуитивно чувствуется, безо всяких вычислений. построим 100 000 первых членов в лоб, найдем длину цикла опять влоб. 100 000 в квадрате, но там обламывается почти сразу, если длину цикла неугадали поэтому все это работает 30 мс. ну а теперь зная длину цикла K и начальные K членов последовательности не сложно научиться считать количество еденичек на интервале [1..n]
У нас есть несколько циклических последовательностей, они все объединяются в одну, операцией "или". В худшем случае длина общего цикла равна произведению длин всех циклов. Это же тебе было очевидно в задаче 500? что K * C * n это общее число состояний, в которых чувак может находиться.
Очевидно также что если сливать два цикла длин A и B и B % A = 0, то длина общего цикла будет B.
Про LCM тоже понятно, это как китайская теорема об остатках. всего может быть не более LCM(m1, m2, .. mn) решений системы уравнений.
4, 22, 40, 76, ...
А для d(y) = 3 - так:
9, 36, 63, 90, ...
И как же эти две последовательности слить в одну с периодом? Или, может быть (такую возможность я тоже допускаю), в последовательность с одним периодом они сливаются не попарно, а только для (почти) всех возможных d(y) сразу?
рассмотрим последовательность f2, f2(x) равно 1, если существует y, такое что d(y) = 2 и d(y) * y = x
рассмотрим последовательность f3, f2(x) равно 1, если существует y, такое что d(y) = 3 и d(y) * y = x
...
все эти последовательности состоят из 0 и 1, и все цикличны.
теперь объеденим их в общую последовательность f, f[x] = f1[x] or f2[x] or f3[x] ...
она тоже циклична, смотри пояснения выше
Где цикличность, где??? В упор не вижу. Но, что самое страшное, ты говоришь, что сдал задачу, значит ты прав. Видимо, я в этой жизни чего-то очень сильно не понимаю :-X
по первой задаче
одни делали 2 подсчётами ,
вторые сжиганием свечки с двух сторон(like while(l<r){while(f(l))l++;while(g(r))r--; dosome;})
кто нить делал за один проход ? (like for(i=0;i<somefunc;i++){dosome2})