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

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

Очередной, 580-тый, матч-из-одного-раунда пройдет в субботу в 20:00 MSK (12:00 EDT).

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

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

Спасибо, чуть не пропустил ;)

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

Ни у кого в последнее время не возникало проблем с ареной, например, что приходится ее перекачивать перед каждым SRMом?
И вообще, как побороть Unable to run application, если даже перескачав ее запустить не выходит?

PS: что то еще надо было, кроме jdk и jre, что бы запускать java-приложения?

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

    Они ее несовместимо обновили недавно я так понимаю. Соответственно надо скачать новую версию один раз, и все будет работать. А вы скорее всего пытаетесь запускать старую.

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

      Да ее уже раз 10 за сегодня перекачивала(если про Арену)
      А если Java — то что конкретно надо?
      Кстати, ести ли возможность запускать как то арену с сайта?

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

        Java Web Start нужен. С сайта можно только скачать апплет, если нажать на O(N) в левом верхнем углу.

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

        Есть способ запускать через ярлык — в пути ярлыка должно быть <путь к javaWS><пробел>http://community.topcoder.com/contest/arena/ContestAppletProd.jnlp , например C:\Windows\SysWOW64\javaws.exe http://community.topcoder.com/contest/arena/ContestAppletProd.jnlp. Есть и другой способ — идем в панель управления->java->temporary internet files->view. Слева Show->applications, находим топКодер арену, жмем install shortcut. Всё, в пуске должен появиться ярлык. При этом, проблем, по идее, вообще не должно возникать, ибо апплет при каждом перезапуске выкачивается с сайта.

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

    В принципе сайтик тц перестал открываться + арена виснет при открытии задачи из практисов

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

    У меня недавно все сломалось, мой javaws отказывался запускать арену. Вылечил полной переустановкой openjdk:

    $ sudo apt-get purge openjdk*
    $ sudo apt-get install openjdk-6-jre
    $ javaws ContestAppletProd.jnlp
    

    До сих пор не знаю, у меня проблема была или у них.

    Арену перекачивать не пришлось.

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

      Вопрос отпал, помогло снесение 7 java и установка старой версии 6-й)

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

    Иногда помогает очистка кеша Java

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

    Есть такая проблема. Я сначала думал что она только у меня, но она воспроизводилась при мне на 5 разных компах. Помогает почистить кеш Java

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

Ну сколько ж можно делать 1000 проще 600... Один раз шутка нормальная, 2 раза — более или менее, но в 100500ый раз уже бесит.

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

    Неправда, 600 халявная, а 1000 я еще не умею решать.

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

      Кому халявная, а кто 20 минут тупил и не мог придумать... В 1000 конечно геморрой с деталями, но что надо в принципе делать — понятно сразу.

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

    Чем же она проще?

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

      Постфактум конечно 1000 попадала; но если бы не последний семпл, 600 попадала бы гораздо больше. В любом случае, ИМХО 1000 straight-forward, в отличие от 600 (допускаю, что это только мне так кажется; я в 600 сначала пытался делать совсем странные вещи, не имеющие ничего общего с правильным решением).

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

        В 1000 куча мест для багов, в отличие от 600, а straight-forward они обе.

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

    Как обе решать?

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

      600:

      Посчитаем динамику dl[i]. Значение — минимальное количество репостов, которое нужно, чтобы все зайцы, хотя бы одной точкой лежащие левее точки i, знали некоторое сообщение, сейчас известное в точке i. Для одного i это делается жадно за линию. Теперь заметим, что нам нужно считать эту динамику не для всех i, а только для тех, которые являются левым концом какого-то из отрезков, поэтому все вместе считается за квадрат. Аналогично посчитаем dr[i].

      Теперь для каждого зайца ответ считается так. Либо мы жадно набираем отрезки справа и слева по отдельности, тогда ответ — dl[l[i]] + dr[r[i]]. Либо сначала добавляем какой-то отрезок (l', r'), а уже после этого набираем жадно. Тогда ответ — dl[min(l[i], l')] + dr[max(r[i], r')] + 1.

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

      Я в итоге 600 сделал так: понятно, что для каждого человека можно решать задачу "все должны его увидеть" независимо. Будем решать задачу для 1 человека (назовём его Васей). Если Вася стоит скраю справа (ну или слева), то понятно, что надо просто жадно: ретвитить его человеком с самой правой правой границей, который может поретвитить, повторять это, пока все про него не узнают. Казалось бы, для произвольного человека можно запустить то же самое влево и вправо, но это неверно (правда, на это был семпл-тест; посмотрел бы я на статистику по этой задаче без семпл-теста). Неверно это потому, что бывают люди, полностью накрывающие Васю, и выгодно поретвитить одним из них, сделав сразу шаг налево и направо. Этот случай обрабатывается правильным порядком перебора "Вась" и сохранением посчитанных ответов.

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

        338 vs 333 ((( Не успел понять в чем подвох

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

          У меня 338 было, пока я не придумал вторую часть ответа Ильи.

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

        Понятно, спасибо. А я решал для произвольного графа, построенного на пересечениях отрезков. Интересно, можно ли ее решить в такой постановке?

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

          Я сначала 20 минут думал над этим и ничего разумного не придумал. Так что скорее всего это гораздо сложнее.

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

          По такому графу можно восстановить систему отрезков за линейное время. UPD. Неправильно проинтерпретировал выражение "произвольного графа, построенного на пересечениях отрезков" как "произвольного интервального графа".

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

            По абсолютно любому графу можно восстановить систему отрезков?

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

              По любому интервальному графу.

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

                Все вижу UPD сверху. Мне тоже тоже для произвольного графа задача показалась np. Наверное сводится к какому-нибудь MVC.

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

              Нет, по кольцу из четырех вершин уже не получается. Да и из соображений мощности видно, что различных систем из N отрезков меньше, чем различных графов на N вершинах.

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

          Для произвольного графа у нас возникают небольшие проблемы с проблемой P vs NP.

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

    У меня другое замечание: Сколько можно делать 550-600? Даёшь нормальную 500-ку!

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

А у всех 1000-ая упала на отсутствии перехода, что второй может не мешать сразу, как мы спустились на уровень?

Если что решение.

Утверждение. Если нам дают идти вниз, то надо идти вниз. Потому что заставить выйти именно здесь нас всегда смогут. Тогда на каждом уровне динамика по подотрезку уже запрещенных и концу на котором мы стоим.

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

Could someone please explain to me Division 2, 500 ?

Waht I understood is that since they all move at the same speed, we can consider them to be still and we have to pick 2 positions where the total will be the maximum.

I am not sure however how I can pick those 2 positions. I was thinking to iterate over the tails but not sure if that would be optimal or why.