In less than half an hour the third Round 3 will begin. Top 25 participants will go to London to compete in Wordl Final. I wish everybody good luck and interesting problems.
№ | Пользователь | Рейтинг |
---|---|---|
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 | 157 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Название |
---|
ИТАК... В чём заключается стандартная ошибка в А-small?
2 часа, пять попыток, так и не понял.
иногда имеет смысл делать заведомо проигрышные ставки
эту ошибку я исправил после первой попытки. Ещё варианты?
У меня даже после учета таких ходов была ошибка в том, что я предполагал, что всегда выгодно делать ставку до суммы B. Вообще, это очевидная тупость, но как-то мозг не очень-то слушался меня, когда я это написал.
Поднимать на единичку ставки, в которых наша доля мала, чтобы их не выбрали?
EDIT: я сдал оба теста, дихом нашел максимальный минимум, и для каждого минимума из отрезка (максимальный минимум -100, максимальный минимум) запускал жадный, который по одному убирал(путем добавления единички) самую невыгодную ставку, которая может быть выбрана рулеткой, и пересчитывал ответ.
Наверняка какие-нибудь части этого решения лишние, но зато оно работает)
Нет, тоже боян. Понятно, но это не объясняет, в чём ошибка в моём решении...
Так он и сдал.
На всякий случай, я решал так: рассматривается ситуация, которая получится после нашей ставки. Перебирается сама минимальная ставка и количество чисел, на которые сделана именно такая ставка. Потом считается ответ, с учётом того, что выгодно, чтобы минимальная ставка оказалась на изначально минимальных значениях, а остальные ставки должны быть хотя бы на 1 больше.
Думаю,дело в том, что не всегда хватает денег для того, чтобы ВСЕ остальные поднять на 1ку, это не значит, что не надо подымать некоторые. Я делал то же самое, только еще перебирал количество чуваков, которых мы при необходимости повышаем до мин. ставки + 1, и это зашло.
Биг, кстати делается почти так же — только вместо перебора всех минставок перебирается минимально возможная и такие, при которых общая сумма приближается к Б (находится БП).
Почему вообще хоть что-то из этого работает — не очень понимаю)
Я хз... Я пробовал даже тупо перебирать минимум,который будет, потом для него считать. Но это все равно давало ВА... За другие задачи так толком и не сел из-за нее:(
Я перебирал число ставок, которые победят.
Пусть это число К. При фиксированном К будем бинарить сумму, которая будет поставлена (не нами, а вообще) на номер-победитель. Т.е. понятно, что в наших интересах это число сделать максимальным — чем выше это число при фиксированном К, тем больше наша суммарная ставка на номера, которые победят, и больше наш профит.
При фиксированном К и фиксированной сумме Х для этого К проверка внутри бинпоиска вроде простая: 1) все числа, которые меньше Х — за свой счет прокачиваем до Х (так как у победителя должно быть Х). 2) среди тех чисел, у которых Х, убираем по одному, прибавляя к нему единицу, до тех пор, пока их больше К (так как их должно быть ровно К). Если чисел с Х осталось меньше К — надо бинарить вправо (вверх), если суммарная стоимость наших действий больше нашего бюджета — бинарить влево (вниз).
При таком бинпоиске можно найти пустой отрезок — если нашего бюджета не хватит, чтобы сделать ровно К победителей. Если хватит, то найденное бинпоиском число будет оптимальным для заданного К.
Сдал D в дорешивании. Идея такая:
Считаем динамику. Будем искать для каждого промежутка на окружности вероятность того, рандомные k людей (где k — количество точек на промежутке), появившиеся на этом промежутке, в нём и осядут (т.е. не будут ждать дальше). Также будем хранить для каждого такого промежутка матожидание денег, которые заплатят эти k человек.
Пересчёт динамики — перебором позиции, на которой остановится последний человек, зашедший на промежуток (при этом не сложно заметить, что промежуток разделится на две части).
Особое развлечение задачи — в том, что всё надо считать в логарифмической шкале.
Всё так. А зачем логарифмическая шкала?..
Разбор: https://code.google.com/codejam/contest/2433487/dashboard#s=a
У меня иначе -1.#IND появлялись
Edit: вполне возможно, что это из-за того, что я не учёл в начале случай всех занятых клеток. Тогда вдвойне обидно, что я её не сдал.
congratulations to tourist for winning this round and everyone else who advanced to the finals!!!!!!!!
Congratulations to everyone who enjoy this contest.
no chinese at world final !!!
I guess one of the reason is that the tasks are very creative. (And another reason is: ACRush can't participates in GCJ this year.)
I love this kind of tasks though I'm not clever enough to solve them. :)