Всем привет!
10 апреля, в 19.00 MSK состоится Topcoder SRM 616.
Предлагаю после контеста обсудить здесь задачи.
GL & HF
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 3993 |
2 | jiangly | 3743 |
3 | orzdevinwang | 3707 |
4 | Radewoosh | 3627 |
5 | jqdai0815 | 3620 |
6 | Benq | 3564 |
7 | Kevin114514 | 3443 |
8 | ksun48 | 3434 |
9 | Rewinding | 3397 |
10 | Um_nik | 3396 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Всем привет!
10 апреля, в 19.00 MSK состоится Topcoder SRM 616.
Предлагаю после контеста обсудить здесь задачи.
GL & HF
Название |
---|
Не 9-го же, зачем так рано писать?
Понятно же, зачем — чтобы опередить других претендентов на авторство подобного поста.
Я думал смысл не в первенстве, а в плюсиках, а оно вон оно чё.
Ну да, в плюсиках, но они будут у того, кто будет первым.
Возможно чтобы запись увидело большее количество человек, ведь далеко не все каждый день заходят на cf.
Это верно
Это мне непонятно. Если человек после SRMа зайдёт обсудить задачи сюда, то он увидит пост наверху /* куда я его только что поднял */. А если человек просто хочет быть в курсе расписания SRM'ов, так на то есть более высокотехнологичные способы.
Согласен. Календарь соревнований (где есть большинство контестов) + напоминания — все это отлично работает.
У меня одного арена лагает? Иногда, например, кнопки не реагируют (компиляция или вход). Помогает перезапуск, но как-то после третьего раза за контест мне надоело.
Java 1.7.0_51, арена скачана с сайта перед началом.
То же самое.
Это чувство, когда ты создал пост, но никто не хочет обсуждать задачи...
А что там обсуждать? :)
Как делать 1000 например?
и 500 Div1? :)
1)Пусть x[i] = value[i + 1] / value[i] — 1 при 0 <= i <= n — 2 и x[n — 1] = INFINITY.
2)Тогда для любого типа монет можно получить любое их количество в диапазоне от 0 до x[i] за один запрос.
3)Пусть было k запросов. Как понять, что мы смогли различить все типы? Для этого необходимо и достаточно, чтобы никакие две маски не совпадали(маски i-типа — вектор длины k, элементы которого — количество монет i-го типа при 1,2,..,k запросе). При этом для i-го типа в маске не должно быть элементов, больших x[i](следует из п.2), и маска не должна быть нулевой.
4)Отсюда решение: отсортируем массив x[i]. Будем перебирать k(от 1 до 6). Для фиксированного k посчитаем count[max] — число масок, каждый элемент которых не больше max(по формуле count[max] = (max + 1) ^ k — 1). Тогда, если для любого 0 <= pos <= n — 1 x[pos] < dp[x[pos]], то k подходит, иначе — нет.
5)Единсвенное, что осталось — это аккуратно обработать элементы с большим x[pos] и вернуть наименьшее k.
насколько я понимаю, dp==cnt. Но не понятно почему делаем проверку pos < dp[x[pos]] (кстати здесь опечатка). Почему не n-1 < dp[x[pos]] для всех pos.
Да, там есть две опечатки: dp это на самом деле count, и проверка должна быть pos < dp[x[pos]].
Почему именно pos < dp[x[pos]]? Данное условие необходимо, чтобы префикс, заканчиваюшийся в позиции pos, можно было покрыть подходящими масками. Чтобы покрыть префикс, заканчивающийся в позиции 0, хватит 1 маски. Для префикса, заканчивающимся в 1, нужно 2 маски. Видно, что для префикса закинчивающимся в pos нужно(и достаточно) pos + 1 маск.
Спасибо. Дошло. Как вообще нужно тренироваться решать такие задачи?
Постепенно.
Мой код на 1000 Div2 не проходит (WA) единственный тест с пустой матрицей
20x20
(test 24). Причем, например, с максимальной пустой матрицей30x30
(test 8) все хорошо, как и с остальными тестами.Может у кого была такая же проблема? Кто как решал?
UPD: Похоже что
div2 1000 != div1 500