Блог пользователя azizkhan

Автор azizkhan, 13 лет назад, По-русски

Сегодня в 16:07 мск состоится Topcoder SRM 536.

  • Проголосовать: нравится
  • +40
  • Проголосовать: не нравится

»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

На топкодере можно разрегистрироваться на раунд?

  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    По-моему нет. А смысл? Если задачи не открывать, участие вам не засчитает.

    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Чтобы не было пустышки в комнате. Участвовать не буду, а зарегался.

»
13 лет назад, # |
  Проголосовать: нравится +32 Проголосовать: не нравится

ТопКодер запустил бинпоиск по времени распределения на комнаты? :)

  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    Если смотреть на сайте. То по локальному времени, сегодня март 7, начало в 07:07. Я думаю, что связано с этим.

»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

сначала полкомнаты решило 500, но за челендж фазу все друг друга похакали. Как же ее решать?

  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +13 Проголосовать: не нравится

    Не умею доказывать (я застрессил), но решение такое — если самая большая кость + число костей кроме нее больше, чем сумма остальных костей + 1 — то ответ сумма остальных костей + 1, иначе — половина, округленная вниз, от суммы всех костей + их число

»
13 лет назад, # |
Rev. 2   Проголосовать: нравится +4 Проголосовать: не нравится

Это был самый веселый раунд на моей памяти — никогда еще не приходилось делать 8 удачных челленджей в одном матче!

  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +11 Проголосовать: не нравится

    а мне никогда раньше не приходилось успешно дефендить 4 челленжа по одной и той же задаче :)

    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится -9 Проголосовать: не нравится

      Ну 4 дефенда — это не гарантия правильного решения. Вот если бы твой код Петр посмотрел и закрыл, то тогда без вопросов, конечно:)

    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      да, очень приятно наблюдать когда у тебя много дефендов...

»
13 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

Как доказать такое решение div1-250 ?

Arrays.sort(r);
int n = r.length;
double cur = r[0];
for (int i = 1; i < n; i++) {
	cur = (cur + r[i]) / 2;
}
return cur;
  • »
    »
    13 лет назад, # ^ |
    Rev. 5   Проголосовать: нравится 0 Проголосовать: не нравится

    Это максимизирует ответ, т.к. для a ≤ c .

    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится +10 Проголосовать: не нравится

      Приведенное неравенство ну вообще не зависит от знака чисел и значения b. В изначальной задаче если к каждому числу прибавить по 1000, то ответ тоже увеличится на 1000

    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      встречал тоже решение, где отдельно разбирались положительные и отрицательные числа. Не понимаю, как до этого можно додуматься

      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        У меня не разбирались случаи. Я сходу сдал задачу, потом пытался для себя доказать, что меня не почелленджат. Мне было проще в голове разобрать отдельно, почему это верно еще и для отрицательных.

    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      А я доказывал через неравенство ((a+b)/2+c)/2>=(a+b+c)/3 при a<=b<=c. Получаем (a+b)/12<=2*с/12=с/6, что и требовалось доказать. А дальше по индукции распространяем на общий случай.

      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится +6 Проголосовать: не нравится

        Я вообще изначально рассуждал банально: чем число больше, тем меньше раз нам выгодно его поделить. Этот цикл это и делает — минимальное поделится n-1 раз, максимальное — 1. Потом попытался описать это формулами и меня закидали помидорами)

»
13 лет назад, # |
Rev. 2   Проголосовать: нравится +10 Проголосовать: не нравится

Наконец выложил screencast

Ютуб будет чуть попозже