Автор tourist, 4 года назад, По-русски

Привет!

VK Cup 2022 - Отборочный раунд (Engine) начнётся уже скоро: 15.01.2023 15:05 (Московское время). Это соревнование предназначено для тех, кто решил хотя бы 6 задач из 8 в квалификационном раунде VK Cup 2022. Раунд будет рейтинговым.

Остальных приглашаем на открытый для всех Codeforces Round 844 (Div. 1 + Div. 2, основан на Отборочном раунде VK Cup 2022), который начнётся в то же время и тоже будет рейтинговым.

Все задачи придуманы и подготовлены мной. Также этот раунд стал лучше благодаря KAN, errorgorn, lperovskaya, dario2994, Monogon, Arpa.

Участникам будет предложено 8 задач и 3 часа на их решение.

64 лучших участника закрытого отборочного раунда получат фирменные футболки VK Cup, а 16 лучших пройдут в финал и смогут побороться за призы 4-5 февраля очно в офисе VK или онлайн:

  • 1-е место — 300 000 рублей;
  • 2-е место — 250 000 рублей;
  • 3-е место — 150 000 рублей;
  • 4-е место — 100 000 рублей.

UPD: Разбор

Поздравляем победителей отборочного раунда:

  1. turmax
  2. Petr
  3. never_giveup
  4. isaf27
  5. 353cerega

и остальных участников, попавших в число сильнейших.

Также поздравляем победителей открытого для всех раунда:

  1. zhoukangyang
  2. noimi
  3. Radewoosh
  4. gamegame
  5. QAQAutoMaton

и отдельно maroonrk как автора единственного принятого решения по задаче H2.

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

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

omg tourist round

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

Damn, 3 hours for only 8 problems. Scary

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

omg tourist round

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

Надеюсь, будет задача про All Cups

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

Shortest announcement ever *_*

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

Tourist can't compete against benq in this round, but he can make some crazy geometry problems to force benq to lose rating and get back to rank #1.

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

3 hours? How difficult the problems will be

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

Maybe my "master experience card" will be expired in this contest.

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

I don't care about the difficulty lvl of the problems if it's Tourist Round. All i know that it is going to be fun.

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

Note the unusual timing

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

omg tourist round ...^,^

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

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

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

what you guys think Benq gonna or not gonna participate this contest?

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

what you guys think is Benq gonna or not gonna participate this contest?

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

omg 3hr round ><

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

Omg 3hr Round ><

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

I think, Benq will not perticipate in this contest. But I will participate and face to the world number one Programme's problems...☝️

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

Score distribution.......???

»
4 года назад, скрыть # |
 
Проголосовать: нравится -44 Проголосовать: не нравится
tourist is a great person
»
4 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

omg tourist round

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

omg tourist round

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

Omg clash with ABC.

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

.

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

This is the shortest announcement for a round that I have ever seen :))

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

omg tourist round . Probme 1 will be 1200+ Rated now

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

It is rated ?(⊙﹏⊙)

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

TFW you expect tourist to claim back first place then see that tourist himself is the author

»
4 года назад, скрыть # |
Rev. 3  
Проголосовать: нравится -39 Проголосовать: не нравится

.

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

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

Contest Clashing with atcoder Beginner Contest 285.

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

I might just end up top1 because problems are being designed by tourist.

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

score distribution when?

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

omg tourist round

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

omg tourist round

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

omg tourist round

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

ok

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

omg tourist round

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

ОМГ. Раунд туриста.

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

Thanks to MikeMirzayanov for amazing platforms Codeforces and Polygon.

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

Contest Collision (CF & ABC):

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

omg tourist round

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

i do bad in tourist rounds, hopefully this will change tomorrow

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

why problem in this year contests are didn't given any rating till now?

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

conflict with ABC285... what a pity that i can't participate in both contests...

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

excited !!

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

tourist gang

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

The One Piece is real!!!

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

Originally I am not planned to participate this contest because I have a date then. But when I see the author, I just postponed the date and register for this contest. Wish I can turn cyan once again.

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

omg tourist

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

I wish the next round will be written by Benq

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

Obviously tourist round will be full of fantastic problems. Good luck, yeah! ^=^

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

I will always be a fan of tourist!

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

omg tourist round

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

It is briefly before the beginning of the round now, and score distribution hasnt been announced yet...

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

Where is score distribution?

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

I think I may not be able to participate because I feel like going to the toilet right now. What a wrong timing. :(

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

glhf

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

scared!i hope i can solve A。。

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

OMG tourist round

I regret I couldnt participate in it as I got stuck with some personal work

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

why the rating of H2 is higher than the rating of H1

it said that H2 is the hard version,doesn't it?

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

F is an amazing problem! couldn't code it in time though, but mindsolved it

Can somebody please tell the solution?

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

In E, finding maximum total area is not that hard but finding the exact subrectangles seems quite difficult. Stuck on it's implementation. Any approach regarding the same?

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

Pretty hard contest.

No idea for D. Have idea for E but got WA. Now I'll return to CM.

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

    how's C done ....?

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

      It's pretty annoying. You need to consider all j that n is multiple of j, calculate how many char will be changed if you make the string to j kinds of different chars. You need consider 2 cases: j<j0 , j>=j0, where j0=the number of different chars in the initial string. If j<j0 you need change some chars with low frequency.

      After you decided the optimal j, you need to add all chars you'll put to the final string into a "char pool" (implemented as int pool[26]), first try to make every chars remain the same(if(pool[s[i]]>0) pool[s[i]]--; flag[i]=true;) the assign i where flag[i]=false any char in the pool.

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

    Well consider two indices i and j. now calculate all such x that make both a[i] + x and a[j] + x a perfect square. the rest should be easy

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

    In E we can first shrink rectangles with same type (row1, row2, row1+row2) and then consider for each 2-height rectangle, shrink it if it's penetrated by any 1-height rectangle, and shrink every 1-height rectangles who doesn't penetrate it but cross with it.

    However I got WA at pretest 15. Also C was very annoying. I spent about an hour for it.

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

    What I did is calculate the answer firstly for two numbers, let's say a and b. We want to transform a into x^2 and b into (x+k)^2 (because b > a), and that means that $$$b-a = (x+k)^2 - x^2$$$, so $$$x = {(b-a-k^2)}/{(2k)}$$$. You can just try every k from 1 to sqrt(10^9) to see whether that k satisfy this condition, then, for each valid k, calculate the number of perfect squares you'd also obtain from the other numbers in the array.

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

    Let's choose some x. If ai & aj becomes perfect square after adding x, then: $$$a_{i}$$$+x = $$$u^{2}$$$ & $$$a_{j}$$$+x = $$$v^{2}$$$ Substracting , we get $$$a_{i}$$$ — $$$a_{j}$$$ = $$$u^{2}$$$ — $$$v^{2}$$$

    => $$$a_{i}$$$ — $$$a_{j}$$$ = (u-v)*(u+v)

    Now split ($$$a_{i}$$$ — $$$a_{j}$$$) into 2 factors f1 & f2 such that f1*f2 = $$$a_{i}$$$ — $$$a_{j}$$$.

    So, f1 = u-v & f2=u+v.

    Find, u from here. Substitute in $$$a_{i}$$$+x = $$$u^{2}$$$ & you will get x.

    Find the count over all possible x in this way & take the minimum one.

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

      I thought trying for every factor of a 10^9 number for 50*(50*49/2) times would cause TLE…

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

        my thinking was similar to you though instead of tle i got wa

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

          Now I upsolved D. My submission:189361440

          The proof of that the submission is available:

          In the algorithm we consider for all divisor k of (aj-ai) where j>i. The maximun number of divisors we check in one case is:

          sum(1<=i<j<=n, sqrt(aj-ai)/2)

          The "/2" is because if (aj-ai)%4==0 k must be even, if (aj-ai)%4==1 or 3 then k must be odd.

          Notice that sum(a[i+1]-a[i])<=A (A=max(a[i])=10^9). We can see for each d, sum(1<=i<=i+d<=n, sqrt(a[i+d]-a[i])/2) is maximized when all a[i+d]-a[i] are same (can be proved by the mean value inequality) and the maximun value is about (n-d)*sqrt(A*d/n)/2=n*(1-t)*sqrt(A*t), where t=d/n. We sum up it for d=1...n-1 and the sum is about O(n^2*sqrt(A)), which fits the time limit.

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

        It doesn't TLE, because you're factoring the differences of $$$a_i$$$ and $$$a_j$$$, all of which can't be around $$$10^9$$$ simultaneously.

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

        it's around 4e7 operations (which should be doable even with 1s time limit), plus the time limit is 4s.

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

          But for case a[i]=1+20408160*(i-1), it runs for 10622587 operations.

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

          OHHHHH I forgoted there's this line in the statement:

          It is guaranteed that the sum of n over all test cases does not exceed 50.
          

          I missed in the contest.... I've thought sum(n) could be 2500 and missed the intended solution.

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

      I just upsolved D with a similar solution. I iterated over all n^2 pairs of numbers. For each number, i iterated over all values of f1 (so sqrt(max(a)) time) and did some math to see if it worked. Then I took all the possible values of x I got, and I simulated the process for each value of x.

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

Problem A was kind of ugly. C also required (at least in my case) a quite hefty implementation.

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

problem C is tough :((( Can anybody show me some hint? :((

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

ofc the first question immediately got hit by annoying geometry question lol(don't worry imo it's also interesting)

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

how's problem C solved ...... nothing struck my brain for like 1.5 hrs i took multiple examples but i couldn't generalize it .

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

Can't believe I clutched C like that.

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

Seeing the drawing for problem A before reading the problem statement was intimidating lol

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

Anyone know what pretest 11 was about in problem E ?

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

any hint on D?

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

How to solve D? :(

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

    The answer can always be 1. Now let's see what will happen if the answer is $$$ \gt 1$$$.
    So suppose the answer is 2. This means that there are any two indexes(let's assume i and j) such $$$a[i]+x=c*c$$$ and $$$a[j]+x=d*d$$$. Here c and d can be any valid integer. So now $$$d^2-c^2=(d-c)*(d+c) $$$.This is equal to $$$(a[j]-a[i])=(d-c)*(d+c).$$$
    Now if we factorize $$$a[j]-a[i]$$$. We can find the value of $$$d. and .c$$$. Using those values we can find the value of $$$x$$$. Now we will store all the eligible values of x and use the best possible option.

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

I swear F is easier than E...

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

any hint on d?

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

D is simple but the constraints are way to big. Any idea how to solve it ?

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

D was very good

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

trash problem E, only boring implementation.

I will never think a strong competitor to be a certainly good author any longer.

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

thanks for this great round

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

How to solve problem C?
My idea was to enumerate the number of occurrences of each character.
It took me about 2 hours. But I got TLE on pretest2.

(Forgive my poor English.)

Edit:
Why many people downvote this comment?

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

How to solve F?

I turn the problem into this:

There's an array S indexed from -n to n, the number on index 0 is 1, rest is 0.

Do n operations, on each operation there's S[i]/sum(S) possibility to choose index i, add 1 to S[i], then P possibility to add S[i+1] 1, 1-P possibility to add S[i-1] 1.

Output the possibility to make S[-n...-1] both 0 after n operations.

But I have no idea how to solve this :(

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

If D doesn't use long long type to save $$$x$$$, will it be WA on #5? I got WA on #5 and I think it was because I didn't use long long type to save $$$x$$$, but I didn't have enough time to change. :(

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

F was a lovely problem, absolutely loved it !

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

How to solve Problem B

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

when upsolving will be open?

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

In problem D, suppose any two consecutive square numbers are p^2 and (p+1)^2 . Then their difference will be (p+1)^2 — p^2 = 2p+1. Now given the maximum element is 1e9. so after choosing some x and changes a[i] to a[i]+x. The maximum number of all a[i]+x will be at most 2e9 or even less than 2e9. Isn't it? Or I am wrong somewhere? If this is the final solution we can brute force all the perfect squares of a[i]. But this solution gives me WA at test 5. Where is this solution wrong then? My solution . TIA :)

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

8

6 0 3 3 6 7 2 7

For the third testcase in problem B (reproduced above), why couldn't 2 people (persons 2 and 7) come? They'd both be happy (2 because at least 0 come and 7 because at least 2 come) and the rest because they're each happy if and only if 3 or more come; less than 3 come, so the rest should be happy as well. Why isn't this a valid result?

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

When will we be able to upsolve?

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

Wrote solution for 1782D - Many Perfect Squares few minutes after the contest and got WA on test 6. Can anybody tell me what's wrong? (189360636) It passed more than 50000 random tests with $$$n\leq{7}$$$.

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

Что за дисболанс. Расположение должно быть A, D, B, C. B и С слишком жесткие для своего места, а D слишком простая.

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

A pretty hard contest tbh especially C, so hefty implementation

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

The tasks were more interesting than usual. Liked B and D!

But C was a bit difficult to implement.

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

The ratings are updated preliminarily. Tomorrow I will remove cheaters and update the ratings again!

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

Now I've upsolved E. My submission:189365023

Basic idea:

First the maximum total area is the initial area. Proof: for any 2 overlapping rectangles, if they are same type (row1, row2 or row1+row2; we'll call them type1, type2 and type3 later), we can shrink one of them to remove the overlapped area and remain the same total area,like this:

[-------[+++++]||||||] -> [-------] [|||||||||||]

('-': left '|':right '+':overlap)

So we can remove all overlaps caused by same type of rectangles. If they are still 2 rectangles who are overlapping, then one of them is type3, the other is type1 or type2 (since type1 cannot overlap with type2, and we've removed all overlaps of same type in previous step). WLOG assume they are type 3 and 1. If type3 is "penetrated" by type1, which means type1.L<=type3.L && type1.R>=type3.R, we need to shrink type3 to row2 (and it becomes type2), like this:

[---[+++]---] --> [---------]

.....[| | |]...............[| | |]

('-': type1 '|':type3 '+':overlap)

Otherwise, we can shrink type1 to remain the area (since type1 can only get out of type3 from at most 1 side). Now we could solve the whole problem.

The naive approach is O(n^2), but by classifing rectangles by different types and sort them by the left borders, we can get an O(n*log(n)) solution. In the first step, for each type of rectangles, we keep prevR=the largest right border of rectangles we've checked, and for every rectangles with left border <= prevR, we move it’s left border to prevR+1 (and if it's left border is greater than the right border, we mark it as removed). In the second step, we maintain 3 pointers p1, p2, p3. For each type3 pointed by p3, we check for every type1 and type2 until there's no more that type of rectangles, or it's left border is greater than type3.R. If there's any type1 penetrates the type3, we mark flag1 as true, similar for flag2. After checked type1 and type2, if(flag1 && flag2) we mark type3 as removed, elif (flag1) we change it's type to 2, elif(flag2) we change it's type to 1. (However, the code implementation is very very very annoying)

Update: Now I've kicked back to div2. Maybe I need more practice to make sure that I can solve all solvable problems in contest.

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

Worst problem C ever

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

Cheating case Codeforces Round #844 (Div. 1 + Div. 2, based on VK Cup 2022 — Elimination Round) problem C

Zaoldyeck code :- 189324513

HAKUNAA_MATATA code :- 189349431

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

Thanks for the fast editorial

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

Each time,I stuck at problem D and spend almost an hour on it.
But it tells me "Brute Force"???
I do wonna how to solve it.

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

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

I suddenly know why 19000+ people registered but there were only 9000+ people submit.

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

This is the hardest race I've ever done

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

Can someone plz tell where this code goes TLE. Solution code for problem C 189395773

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

Hi guys! If you're having troubles with B and C problem you can check the video tutorial at this channel- www.youtube.com/@grindcoding

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

omg tourist round

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

Hi there!

If you have any doubts in problem B and C you can checkout the tutorials here- www.youtube.com/@grindcoding . Happy coding!

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

Anyone tried to solve the problem D using Binary sesrch?

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

H is a problem designed cleverly (although most haven't ever clicked the link of it). For case k=0 it's a trivial div2C problem (consider the smallest "bounding-box" of a pattern and use inclusive-exclusion principle to count for each bounding-box). For case k=1 it's a normal div2E problem (consider every possible position of the broken light relative to the bounding-box, they'll form a rectangle, if it's contained in the bounding-box, subtract the number of patterns where all lights in this rectangle are turned on). For case k=2 we get 2 rectangles, and we need to guarantee that there must be at least one pair of corresponding positions of rectangles where lights are both off. We consider how many patterns will violate this condition: If for every pair of corresponding positions, there must be some position with light on, we construct a graph whose vertexs are positions in the 2 rectangles, and add an edge between each pair of corresponding vertexs, we need to find the number of ways to color these vertexs where every edge has a vertex with a light on. Since the graph can be disposed to several chains, and the number of such coloring for a chain is Fibbonaci numbers, we need to find the length of each chain (if any chain has 2 adjacent vertexs out of the bounding-box, the answer is 0, because they can't be light on).

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

    I'd rather say it is too classical and easy (to come up with a solution, implementation not included) for most who did click the link of it, and totally not worth higher points than G. And I bet many solved G but could not solve H1 only because of a lack of time. (For me, an additional 5 minutes would suffice.)

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

Can anybody teach me that how to solve F? many thanks.

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

tround

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

When editorial will be published?

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

when will we get editorial of this contest?

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

I feel like D was a lot more easier than C, I still am not sure how to do it. I guess D and C should have swapped places

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

Solution sketch for F:

Let us say that two characters are paired if they were inserted in the same operation. Note that there are always an even number of characters between any character and its pair. Let $$$g(n, k)$$$ be the probability that after $$$n$$$ operations, there are $$$2k$$$ characters between the leftmost character and its pair. Note that $$$g$$$ does not consider the type of pairs inserted (() vs )().

Compute $$$g$$$ by DP. $$$g(1, 0) = 1$$$ and $$$g(1, k \gt 0) = 0$$$. From any state there are three possible transitions. A new pair may be inserted left of the leftmost character, producing state $$$(n+1, 0)$$$. A new pair may be inserted between the leftmost character and its pair, producing $$$(n+1, k+1)$$$. Finally, a new pair may be inserted entirely to the right of the leftmost character's pair, producing $$$(n+1, k)$$$. $$$g$$$ has a quadratic number of states each with a constant number of transitions.

Suppose that ( has value $$$1$$$ and ) has value $$$-1$$$. In a regular bracket sequence, all prefix sums must be non-negative. Let $$$f(n, s)$$$ be the probability that in a string produced from $$$n$$$ operations on an empty string, all prefix sums are $$$\geq s$$$.

Compute $$$f$$$ by DP. $$$f(0, s \leq 0) = 1$$$ and $$$f(0, s \gt 0) = 0$$$. To compute $$$f(n, s)$$$, suppose there are $$$2k$$$ characters between the leftmost character in the resulting string and its pair, and suppose that pair is of type )(. Inside the pair, we have a sub-problem $$$f(k, s+1)$$$. To the right of the pair, we have a sub-problem $$$f(n-1-k, s)$$$. Each $$$k$$$ contributes a term $$$(1 - \frac{q}{10^4}) \cdot g(n, k) \cdot f(k, s+1) \cdot f(n-1-k, s)$$$ to $$$f(n, s)$$$. Pairs of type () are handled similarly. $$$f$$$ has a quadratic number of states each with a linear number of transitions.

Finally, output $$$f(N, 0)$$$ for $$$N$$$ in the input.

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

First time seen that there is no thanks to MikeMirzayanov for Codeforces and Polygon platforms.

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

When will editorial be released

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

Can someone share a solution to C?

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

    Here is the code : 189565190

    Basically what i have done here, is start iterating from 1 to 26, and for every integer when n%i == 0, called a function solve which gives the most optimal string when the no of distinct characters present in the string are i.

    Now, In solve function, first I calculated the no of times a character should be present in the string, that is n/i, then replaced all the characters whose frequency in the string is greater than n/i to of those whose frequency is less than n/i, till all the i characters have n/i frequency.

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

So I have a solution for F which requires O(N^3) memory and time but the memory is way too much it is something like this : dp[i][j][k] = the probablity of it being a balanced string after i moves and having exactly j sub balanced strings (any balanced string is a number of balanced strings next to each other) having k positions in the whole string were if string )( is added the number of balanced substrings go up by one (in other words if you write the prefix sums of +1 and -1 the prefix sum is +1 at that point). now updating each cell of this dp is O(1) because all you have to consider is where the string () or )( is added. in case of string () if it is added between 2 balanced substrings it adds one to the number of them and also adds one to k value. if it is added in the k positions where the prefix sum is +1 it doesnt add the number of balanced substrings but adds one to k and in other positions it doesnt change k or j. for string )( , it cant be added between the balanced substrings, in the chosen k positions it adds one to the number of balanced substrings and also adds one to k and in other positions it doesnt change anything.

is this approach wrong ? and if it is not can i somehow iterate on something to change memory to O(n^2) ?

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

No editorial?

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

Please Publish Editorial.

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

where is the tutorial???

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

omg tourist round

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

Internet explorer tutorial

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

in C after fixing the number of distinct characters in the final string how to decide which characters i have to keep and which to delete so as to minimise operations ... mathematical proof is appreciated .

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

    Sort the frequency of the initial string and draw a histogram, then draw a rectangle represent the target frequency, see what's the difference between them.

    For example, if the frequency of the initial string is 6,4,4,1 ans you need to change all frequency to 5 (and there will be 3 different chars), the histogram will be like this:

    -----!

    ----*

    ----*

    !

    ('-':the character will remain the same '*':the character will be added '!':the character will be removed) in this case the number of chars will be changed is 2.

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

internet explorer tutorial

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

where is tutorial ? we want to upsolve..

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

Please give the editorial before the next contest starts !!

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

The slowest editorial ever. Oh, wait, there's no editorial yet!

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

Spent a day looking at B. Still can't solve. tourist Please make tutorial easy and if possible early.

Thanks.

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

It is the first announcement to have those triples of no:
1- No editorial
2- No score distribution
3- No thanks to mike mirzayanov

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

There are thousands of problems in Codeforces, you guys could solve them instead of waiting for editorial and you guys can upsolve the problems anytime later after getting the editorial, Mike won't delete any problems. So instead of worrying about it, solve some other problems:)

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

Can someone share a solution for problem H?

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

omg tourist round

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

lets go

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

Извините, будет ли, и если да, то когда примерно объяснения задач этого этапа? Или оно уже есть, но не в блоге Туриста? Подскажите, пожалуйста, кто-нибудь

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

TUTORIAL IS OUT!!!

TUTORIAL IS OUT!!!

TUTORIAL IS OUT!!!

TUTORIAL IS OUT!!!