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

Автор Gassa, история, 5 месяцев назад, По-русски

Привет.

В весеннем семестре я вёл в СПбГУ спецсеминар под названием «Динамическое программирование». Чтобы получить зачёт, участники решали много тренировочных задач, а ещё — готовили свою собственную задачу в Полигоне.

Для большинства участников это была первая подготовленная задача. Тем не менее, получилось довольно мило. Пару задач дали на локальные олимпиады. А из остальных я собрал две тренировки и выложил на Codeforces. Тренировки поставлены на следующее время:

В каждой тренировке есть и простые, и сложные задачи. Большинство задач — учебные. Думаю, оранжевым и ниже — задач хватит на всю тренировку. Задачи идут в случайном порядке.

Успехов!  

Обновление 1: после второй тренировки будет выложен краткий текстовый разбор. К первой тренировке разбор пока не готов, но тоже когда-нибудь будет.

Обновление 2: спасибо авторам задач!

  • Марат Аграновский
  • Павел Балай
  • Николай Березиков
  • Тимур Гараев (the_timur)
  • Александра Дурнева
  • Иван Казменко (Gassa)
  • Игорь Киселёв
  • Мария Козловцева
  • Софья Копейкина (30SK5)
  • Игорь Коркин
  • Антон Кузнец (Astronomax)
  • Максим Мильшин
  • Даниил Павленко
  • Сергей Петров (psn2706)
  • Макар Селиванов (mselivanov)
  • Александр Тульчинский (TulchinskijA)
  • Илья Тюряев
  • Алёна Черепанова (Monic)

Обновление 3: готов разбор первой тренировки.

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

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

Is the contest open to everyone?

If yes Contest Link is not working. May be uploading an invitation link or group link will work.

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

    Looks like the links start working when the gym starts.

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

      Still, there is no option to submit as I haven't registered for the contest. (┬┬﹏┬┬)

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

        But you can register now, right?..

        Sorry, I am setting a public gym for the first time. Not used to all the quirks.

»
5 месяцев назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Как раз хотел сегодня порешать дп. Спасибки.

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

What is the estimated rating for the problems ? or they're just educational problems ?

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

Будет разбор потом?

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

    Суть дп в использовании очередности вычислений и запоминании результатов. Как введение,

    105239B:
»
5 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Can anyone help what is wrong with my submission here for Problem G of Day-2, it gives WA on tc-3?

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

In H it's pretty obvious how to write the code, but when to logically decide when vasya wins or peter?

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

    The tutorial is now available (see links in the post and in the gym).

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

271027559 Hey can any one check the issue in my code. I think it aligns with the intended solution but WAs on test case 5. Since the cases aren't visible I'm not exactly sure of the issue. Can one of the authors/managers please clarify?

Spoiler

Edit: Never mind got it. I was having a take not take style rec which was causing WA.Just removing that and iterating over the array fixed it

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

    Consider this line:

    ll res = max(1LL, rec(pos + 1, N, diff, ok));

    This assumes we can just skip an element of the array, and move on. In doing so, however, we lose the information about the previous element taken.

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

      Thanks for looking into my submission. So I just removed the skip case and iterated over the whole array to find max length. That made it AC.

      I'll just post my AC code for anyone who might be facing a similar type WA.

      AC Code
»
4 месяца назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I was solving problem I. Path and K Vertices. My solution is pretty much same as the editorial. I am maintaining two sets for finding k larger elements while using dfs. But this gives me wrong answer. can somebody tell me what is wrong in my solution.

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

    The solution seems to assume root is the first vertex. This need not be true.

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

      Thanks for the help.
      I should have read the problem more carefully.