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

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

Добро пожаловать на 2016-2017 CT S03E03: Codeforces Trainings Season 3 Episode 3 - 2007-2008 ACM-ICPC, Central European Regional Contest 2007 (CERC 07). Продолжительность тренировки — 4 часа 30 минут. Тренировка открыта как для команд, так и для индивидуальных участников. После ее окончания вы можете дорешивать задачи тренировки или поучаствовать в ней виртуально, если не смогли принять участие одновременно со всеми. Пожалуйста, участвуйте в тренировке честно.

Ориентировочный старт: 21 сентября 2016 г., 16:10 (Московское время).

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

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

Удачи!

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

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

Желаю всем удачи!!!

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

Надеюсь будет весело. Всем удачи.

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

Typo in title: S03E02 (should be S03E03)

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

available*

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

how to register for it?

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

What's wrong with the problems?

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

Please, help me to find a max sum of test cases in problem — A?

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

How to solve Problem Weird Numbers ?

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

    I'll explain my solution, which I'm pretty sure is not optimal.

    • It's clear that with a negative base, odd positions will be negative and even positions will be positive. So all numbers in base  - b can be expressed as e + o where e is some number in base b with all zeroes in odd positions and o is some number in base b with all zeroes in even positions.
    • So what I did was generate all said numbers up to 109 and store them in E[b] and O[b], where b is the base. Then for every query [b, x] (that is express number x in base  - b), I iterate over all e in E[b] and check if e - x is in O[b]. If it is, I just have to print e + o in base b.
    • The other type of queries is trivial, is just processing a number in base  - b.
  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится

    I'll explain my solution, which I think is optimal.

    Its almost the same as converting in positive bases. Lets convert N from base 10 to base b (b < 0):

    N = a0·b0 + a1·b1 + ... + an·bn

    note that , so (N - a0) / b = a1·b0 + ... + an·bn - 1 and we can repeat recursively.

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

Anybody knows where can I find the editorial ( :

Thanks

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

Why did answer "4 2 3 4" fail on the second sample? (Problem S. Robotic Sort)

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

    It is said in statement: their mutual order must be preserved: the one that was given first in the initial order must be placed before the others in the final order too. So you should also consider the INITIAL indexes of elements.

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

What is solution for problem C(Phone Cell)? We thought that problen can be solved by geometric invertion, but we don't know, how we can use it.

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

How to solve B? :(

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

    Consider all the tiles of row 1. There are m tiles and 2^m ways to select a subset of them to be flipped. Notice that this uniquely determines all the other tiles which needs to be flipped to clear the billboard afterwards.

    Consider cell(2,1). If cell(1,1) is on, then cell(2,1) must be flipped. And if (1,1) is off, (2,1) should not be flipped. Because after flipping (2,1), (1,1) is on and now there is no way to turn off (1,1) since the columns to be flipped in row 1 is fixed.

    Complexity: O(2^m * n * m)

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

      I used bitmask but it keeps giving me TLE on test 2, I submitted the same code on SPOJ(where time limit is 3.6sec) it got AC, How to get AC when time limit is 1sec using bitmask?

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

        You can optimize your solution with the bitwise operation! Complexity: O(2^m * n) Here is my solution

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

    Try all possibilities for the first row, after that it's easy to see which ones you should switch in the second row (the ones that are still black in the first row), then the same applies for the third row, etc..

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

    We actually solved it using systems of linear equations.

    Suppose aij is the number of times a tile at row i and column j gets swapped. First of all, aij ≤ 1. Then, for each position (i, j) we can get it's final color as (initial_colorij + aij + ai - 1, j + ai + 1, j + ai, j - 1 + ai, j + 1) mod 2.

    That gives as a system of equations with n·m equations and unknowns. Sure it's not as easy to code, but it gives better time asymptotic.

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

      The system of equations can have many solutions, how do you choose the one that minimizes the number of taps?

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

        Great question!

        It turns out, that number of free variables (meaning we can choose any value for them) is not that big (7 for 16x16 matrix). We can search over all possible values for this (at max 7) free values and find other unknowns, then choose one that minimises number of taps.

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

Can anyone explain the solution for Problem C?