Сегодня в 20:00 Москвы.
№ | Пользователь | Рейтинг |
---|---|---|
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 | 155 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
10 | nor | 152 |
Сегодня в 20:00 Москвы.
Название |
---|
Как решать 1000?
Раскрасим вершины в 3 цвета: черные, белые в четных строках — назовем "красные", и белые в нечетных строках — назовем "синие". Тогда каждая тройка содержит ровно одну каждого цвета. Теперь понятно какой поток: из истока в красные в черные в синие в сток, с ограничением на пропускную способность вершин.
Понятно, спасибо. Я не додумался до четных и нечетных строк. Думал разделять белые клетки на пару (горизонтальная, вертикальная), но тогда одна белая клетка может использоваться в двух тройках.
Хех, один из тестов к 500 (видимо, с челленджей) содержит символы '"' внутри строк. Не говоря уж о том, что строки получились длиннее 47. Валидатор такой валидатор...
Рандомный просмотр history топов, у кого 500 попадала, показывает, что у всех упал этот тест: (под катом)
Лишь бы не сделали unrated...
Казалось бы, с чего ему быть анрейтэд? На ход coding phase и challenge phase непонятно как могло это повлиять. А если не повлияло — значит наверное не сделают.
upd. упс, тест же с challenge взят..
Ух ты, это может запросто вызвать рантайм в моем решении.
У меня как раз этот тест упал по Exception.
Это неловкое чувство, когда твое решение не проходит ровно 1 тест из 10^18 возможных...
Как доказывается первая? Т.е., как там выглядит стратегия?
И как доказать формулы во второй?
Если мы в нечетной, то второй выигрывает просто повторяя ходы первого. Дальше почти из всех чётных можно пойти в нечётную, значит там первый выигрывает. Остались степени двойки. Если у нас 2^n, то после вычитания чего угодно кроме 2^{n-1} можно пойти в нечетное, поэтому первый так делать не будет и вычтет 2^{n-1}, то есть просто поделит на два.
Понятно, спасибо.
Да, красиво.
Интересно, какое соотношение тех, кто придумал стратегию, к тем, кто закодил брут и посмотрел закономернсть?
Ну я закодил брут и посмотрел закономерность, естественно :)
Я придумал стратегию, без помощи брута и даже без помощи бумажки. Это вполне делается за несколько минут, хотя конечно медленнее брута.
Очень показательное соотношение численности математиков и программистов среди олимпиадников. Можно иметь в виду при подготовке контестов.
Скорее показатель ленивости. У Petr а скорее всего достаточно мат. скила, чтобы придумать на листочке easy с topcoderа.
Конечно, у многих достаточно. Вопрос не в том, кто может это сделать, а в том, что для человека проще — закодить брут или подумать.
расскажите пожалуйста как решалась 500 1 div
Для каждого элемента строки посчитаем, во сколько подстрок он входит (по формуле). А ещё посчитаем вероятность, с которой любой элемент после K ходов останется на месте. Это линейная динамика p[i] считается через p[i-1]. После этого для каждого элемента val[i] его значение — это p[k] * val[i] + (1 — p[k]) * (sum — val[i])/(n-1). Предоставим читателю самостоятельно додумать тонкости реализации.
Например, так: считаем вероятность, что после k шагов на данном фиксированном месте останется то же число, что стояло в самом начале. Это можно сделать за O(k) или за O(log(k)). Дальше всё просто — если в конце на данной позиции стоит какое-то другое число, то вероятность того, что это за число, распределена пропорционально количеству этого числа в последовательности. Поэтому для каждой пары (позиция, число) мы знаем вероятность, а значит, ответ — это понятно какая сумма по линейности матожидания.
Так можно считать не "то же число" а "элемент который изначально стоял на этой позиции". Тогда всё равно какие там числа были, от 0 до 9 или более широкий диапазон.