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

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

The contest is mov

Добро пожаловать на 2014-2015 CT S02E02: Codeforces Trainings Season 2 Episode 2 (CTU Open 2011 + misc). Продолжительность тренировки — 4 часа 30 минут. Тренировка открыта как для команд, так и для индивидуальных участников. После ее окончания вы можете дорешивать задачи тренировки или поучаствовать в ней виртуально, если не смогли принять участие одновременно со всеми. Пожалуйста, участвуйте в тренировке честно.

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

Условия задач будут на английском языке, ведь мы же готовимся к ACM-ICPC!

Удачи!

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

»
12 лет назад, скрыть # |
 
Проголосовать: нравится -21 Проголосовать: не нравится

Why?

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

Isn't it better to move CF Round rather than Training Episode? Rounds are always on different days, while having Training Episodes on certain day would allow teams to include it to their regular trainings schedule.

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

    I also expected the CF round to be moved instead. Maybe it just has lower priority since it's Gym... and can be done in virtual participation anyway.

    And now I'm also curious why this got many downvotes in a short time.

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

    Considering the number of participants (CF Round 267: 4k7, last gym training: less than 400), we can clearly see why the training should be moved.

    • »
      »
      »
      12 лет назад, скрыть # ^ |
      ← Rev. 2  
      Проголосовать: нравится +22 Проголосовать: не нравится

      I was not talking about the amount of the audience, was I?

      Those 4.7k would participate on any day of the week, because it's ok to have cf rounds on different days and it's not difficult to schedule a 2-hours round for a single person comparing with scheduling 5-hours contest for teams of three.

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

How is problem F solved ?

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

Anyone can help me find my mistake on J? Here's my code : http://pastebin.com/T5vuiMHG

I get WA on test 2, but I can't see the test data and I have no idea where could I be wrong (can't think of any test case).

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

Why can't I see other solutions after the end of contest?

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +52 Проголосовать: не нравится

The author of the problem A probably was angry with life at the moment of creating it...

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

Please someone discuss problem E (Invasion) and problem F (Intergalactic Mortgage). It will be really helpful.

I could not find a way for the problem E and got TLE in problem F using brute force.

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

Any ideas on G?

  • »
    »
    12 лет назад, скрыть # ^ |
    ← Rev. 2  
    Проголосовать: нравится +5 Проголосовать: не нравится

    Maybe, hypothetically speaking, there could be a heuristic — but the input size is large as hell, so I'd say that you need a sweepline algorithm that maintains the set of lines ordered by their intersections points with the sweepline. It has a name, google it — or you can think about it yourself, it should be similar to the convex hull trick in DP.

    It feels like CTU Open problemsetters always tell themselves "so, for a seriously hard problem, let's have reasonably obvious but nasty geometry".

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

Any suggestion on how to solve problem B ?

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

    take one number, use algorithm described in statement while number != 1, and save in std::map<long long, int> number of steps:
    let d[x] be the number of steps to conver first number to number 'x'
    then use algorithm to convert second number to 1 and while converting choose the shortest way to do convertation

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

How to solve I?

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

Это оффтопик, но последние два дня при попытке создать запись в блоге появляется страница "Codeforces временно недоступен".

Это только у меня так?

»
12 лет назад, скрыть # |
← Rev. 5  
Проголосовать: нравится 0 Проголосовать: не нравится

Прошу совета:

Как доказать в E что просто обновлять мин. расстояния из каждой базы до других зайдет в TL, как оценить кол-во операций? Одна дейкстра может работать за MlgN, т.к. расстояние до 100, то можно сделать bfs за M, но, это все равно выглядит не очень быстро.

F, использование формулы за O(1) (x*r^(n) — y(1 — r^n)/(1-r)) для получения остатка через все время дает WA, видимо из-за переполнения double до inf в тестах с большим нашим платежом и процентом, как сдать?

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

    в Е там типа каждая вершина обновится максимум 100 раз

    в Ф у нас был косяк с r == 0.

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

      Вершина да, но просмотров ребер может быть больше.

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

        ну там O(M * k) получается.

        • »
          »
          »
          »
          »
          12 лет назад, скрыть # ^ |
          ← Rev. 5  
          Проголосовать: нравится 0 Проголосовать: не нравится

          http://1drv.ms/1ttasBH картинка

          тоже не согласен. В этом примере на каждое добавление могут пересчитываться почти все ребра.(т.е. организовываем N/2 элементов в такое дерево, остальные привязываем к корневой вершине полным графом), каждое добавление будет доходить до корня и обновлять расстояния в полном графе.

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

            ну так не более 100 раз же дейкстра пойдет вниз по полному графу.

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

              Ну раздели граф на 4 части, 1/4 сделай полным графом, 3/4 подвесь деревьями с разных сторон, тогда легко сделать чтобы было 300 просмотров полного графа. Как строго доказать? Почему таким образом, мы, например, не можем посчитать расстояние между всеми вершинами меньше чем за N^3.

              • »
                »
                »
                »
                »
                »
                »
                »
                12 лет назад, скрыть # ^ |
                ← Rev. 2  
                Проголосовать: нравится +3 Проголосовать: не нравится

                я не понимаю как 300 просмортров полного графа может быть.

                вот наше решение.

                массив dist[] — кратчайшее расстояние до вершины i от какой-то уже построенной базы.

                массив used[] — плохая ли вершина i или нет.

                дальше как пришел запрос — делаем поиск в ширину с обновлениями и при этом ходим только в те вершины, до которых расстояние улчушилось(уменьшилось) и при этом расстояние не превосходит данного в инпуте k.

                При таком решении не пойму как 300 раз можно пройти через вершину.

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

                  Поиск в ширину посещает всего N вершин, но работает за O(M), т.к. он может просмотреть все ребра, понимаешь разницу? Посетишь ты N, пометишь вершины 100 раз, верно, но кол-во просмотров ребер вроде может быть другим.

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

                  Все, понял строгое док-во большое спасибо.

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

Can someone tell me what is test case 2 on problem H ? I wrote a dp solution, but it keeps giving me WA