Хотелось бы узнать как решаются задачи A, B, C, D, G, I, J, L, M. Контест прошёл, помогите пожалуйста. Заранее благодарен.
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 156 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Хотелось бы узнать как решаются задачи A, B, C, D, G, I, J, L, M. Контест прошёл, помогите пожалуйста. Заранее благодарен.
Название |
---|
Пусть F(n) ответ на задачу.Тогда F(1) = 1 и также исходя из условия можем сказать, что длина n-строкофакториала равна сумме длин строк, образованных конкатенацией n-ого множителя и i-ого символа (n-1)-строкофакториала (для всех i=1..n). Поэтому F(n) = F(n-1)*(1+Length(s[n])), где s[n] — n множитель соответственно.
Заметим также что при i = 1..26 Length = 1 ,
i = 27..26*27 Length = 2 ,
i = 26*27+1..MAXN Length = 3.
Длина ответа превышает 5000 цифр, а поэтому, к сожалению =), нужна длинная арифметика.
спасибо
В D просто матрицу в степень возвести, у меня получилась 7x7, на Java не заходит, на плюсах зайдёт наверное.
На плюсах 7*7 тоже не должно зайти. Нужно соптимизировать матрицу до 5*5 хотя бы.
можно поподробнее про матрицу, пожалуйста
Допустим, мы знаем два цвета на первом слое ожерелья. Назовём их 1 и 2. Все остальные цвета будем называть 0.
Тогда можно построить динамику: количество ожерелий, которые на i-том слое содержат 12, 10, 20, 21, 01, 02 или 00 (вот откуда 7*7)
Динамика пересчитывается из предыдущего состояния, так что её можно заменить матрицей переходов и возвести эту матрицу в степень.
Ну а нас в конце концов будут интересовать случаи 20, 21, 01 и 00, которые не содержат одинаковых смежных цветов с 12.
Оптимизировать матрицу до 5*5 просто, если заметить, что там есть пары одинаковых (в смысле пересчёта и количества на каждом шаге) состояний.
В: Кажется, заходил аккуратно написанный квадрат.
С: Понятно что надо на остовном дереве найти длиннейшее расстояние между парами соседних баров на пути с одного бара в другой (он 1, поскольку мин-остов это дерево). Это делается методом двоичного подъёма, аналогично тому как искать LCA.
J. ans=n. Никто же никуда с дерева не улетает.
Поищите статью на кодфорсе о 1/8 чемпионата мира восточного региона Украины этого года http://codeforces.me/blog/entry/4323