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

Автор GreenGrape, 7 лет назад, По-русски
Tutorial is loading...

Код: 36605296

Tutorial is loading...

Код: 36605336

Tutorial is loading...

Код: 36605356

Tutorial is loading...

Код: 36605449

Tutorial is loading...

Код: 36605502

Tutorial is loading...

Код: 36605519

Разбор задач Codeforces Round 471 (Div. 2)
  • Проголосовать: нравится
  • +25
  • Проголосовать: не нравится

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

It would be a good idea to add tutorial link in contest page.

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

what does the function root() in problem C solution

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

C's time limit was stupidly strict. 36551515 is TLE(runs in about 2.15 seconds), while 36625920 is AC. The only difference was adding special cases if the exponent>=30.

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

    Well, usually time limits are set 2-3 times as authors' solutions. As you can see, my solution (without any optimizations) runs in ~700 ms.

    36551515 is TLE due to endl & flushes. 36629869

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

In problem C, my question is when there are much more element need to be inserted in a container so "should we prefer vector on the place of the set?" in c++.

because of the same thing I implemented using set giving TLE and by vector AC

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

Can anyone please tell me why are we disposing sqrts in problem c

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

    There are 10^9 squares in the range [1..10^18], so we can't just store them to answer our queries. But floor(sqrt(x)) is a number of squares in the range [1..x], so, we just calculate floor(sqrt(R))-floor(sqrt(L-1)) to know how many squares are in the range [L..R]

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

Problem D can be solved by KMP with O(n) time complexity.

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

question C can be easily solved by using the Mobius function (inclusion-exclusion of numbers l<=x<=r that can be generated in several ways). However, this solution requiers accuracy of the pow function and in test 5 (very big numbers) I get an off-by-one solution. How can one use the pow function to get the actual floor of the result even if the base is 10^18?

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

    You can test it manually.

    Imagine that the number returned by pow is x. Then test xp, (x + 1)p and (x - 1)p and choose the one that satisfies the conditions.

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

GreenGrape. In question 955C, how do u take care of the repetitions like 1000^2,100^3 which are basically 1000000, but show up in both squares and cubes. Thank you.

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

    I exclude all squares from the set of powers greater than two after I generate them.

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

      Then, how about 3^15, which shows up in both powers of 3 and 5. Are you keeping track of the ones chosen from power of 3 onwards. Thanks

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

By saying 'Let f3(u) will be minimal k, such that heapk(u) is equal to 3.', I guess you actually mean to say 'maximum k'?