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

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

Добро пожаловать на 2017-2018 ACM-ICPC, NEERC, Южный четвертьфинал, квалификационный этап (онлайн-трансляция, правила ACM-ICPC, предпочтительно команды).

Этот контест был проведен вчера (17-го сентября). В основном он ориентирован на аудиторию участников из второго дивизиона.

Просьба к официальным участникам: пожалуйста, воздержитесь от участия в онлайн-зеркале, после окончания вы сможете как и все дорешивать задачи.

Во время онлайн-зеркала вы сможете скачать PDF-файлы с условиями (как на русском так и английском языках). Ссылки будут доступны на основной странице соревнования в сайдбаре справа.

Удачи!

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

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

Hope it will be rated

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

Codeforces is on fire, two days ago MemSql, yesterday Technocup, today neerc and tomorrow one div2 contest!

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

Удачи всем

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

Для фиолетовых тоже отлично заходит, на самом деле. Было интересно, крутой контест.

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

Is it rated?

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

Why doesnt you add this kind of Contest to a Programmers Contest log...Please add this feature adding Educational Round and Other contests in a programmers Contest log

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

How to solve J, L?

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

In which site can we find the official rank list(not the mirror)?

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

How to solve D?

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

I made more than 9 submissions to B, but i keep getting time limit exceeded!! My solution is O(mn) where m is the number of strictly increasing subsequences. Any help? Some people even solved it withing 100 milliseconds :O

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

I made a video explaining my approach to problem k here https://www.youtube.com/watch?v=73s1wyykELQ&feature=youtu.be

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

A minute of advertisement and half-farewell.

Since 2012 my university (Samara U, previously Samara SAU) has been preparing two big contests in a year:

and

If you are yellow or lower, you may have a nice time solving them.

Now our subregional has an official, approved by Baylor, Qualification contest (this one). So, there won't be qualification contests from my university anymore. We will prepare only one big contest per year, so see you in April or May 2018.

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

My solution for B, has O(Nlog^2(N)). Why TLE 15? http://mirror.codeforces.com/contest/847/submission/30481489

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

Any hints for E? I think it's supposed to be easy but I'm stuck.

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

Is there any editorial for the problems ?

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

Will there be an tutorial?

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

Any hint for Problem B? My code meet TLE on test #27

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

    You can use some data structure like binary search tree to get an O(nlgn) algorithm. In C++, you can use std::set conveniently. Just keep updating the answer queues while iterating the array. Without storing all answer queues, we can use next[] array to record the next item of the current item in the final answer queue. And we use std::set to store the last items of each queues. Then we can use upper_bound to find out the proper queue we should append the new item to.

    This is my solution: http://mirror.codeforces.com/contest/847/submission/30470282

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

      Thanks, I've just passed this problem. But It doesn't need use std::set, just use vector to score the answer sheet, it must in order actually. Using std::set will cost more when lower_bound moving the iterator.

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

Some hint for problem D?

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

How do you make sure in questions like F that there is no edge case left to consider? It just happens to me that after thinking for a hour or two about various conditions, there still remains so many conditions leading to WA. Any help is appreciated. Thanks.

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

How to solve C?

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

    Guess I am too late but probably might help others.

    Let $$$M$$$ be the max possible sum we can generate. Then, $$$M=\frac{N * (N - 1)}{2}$$$. Firstly, if $$$K \gt M$$$, then ans = "Impossible". Otherwise, we can prove that we can always generate a sum of $$$K$$$.

    My observation was this: We can obtain $$$M$$$ by sequentially nesting all brackets. Something like this "(((...)))". We can represent this by a sequence $$$S = 0,1,...,N-1$$$ which corresponds to the nesting values of the opening brackets from left to right. Now let's say we want to make a sum of $$$M-1$$$, what we can do is, simply change the nesting value of the rightmost opening bracket, which is currently $$$N-1$$$ to $$$N-2$$$. So, $$$S = 0,1,...N-2,N-2$$$. Similarly, if we want to make $$$M-2$$$, we can decrease the second last number, which is currently $$$N-2$$$ to $$$N-3$$$. So, $$$S=0,1,...,N-3,N-2$$$. We can regenerate the resulting string from sequence $$$S$$$ by any ad-hoc method.

    What we are essentially doing is: every time we want to decrease the sum by $$$1$$$, we decrease the nesting value of the leftmost occurrence of the max nesting value in the sequence $$$S$$$ by 1. Using this pattern you can generate all sums from $$$0$$$ to $$$K$$$. Others might have a more elegant approach, but unfortunately it wasn't discussed.

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

how to solve e ?