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

Автор sevlll777, история, 5 лет назад, По-русски

Спасибо за участие, надеемся, что вам понравились задачи! Также мы просим вас оценить каждую из задач раунда в соответствующем спойлере, чтобы улучшить качество будущих соревнований.

Все задачи были подготовлены Alexdat2000 при помощи соавторов.

Почему AI не участвовал

1634A - Reverse and Concatenate
Идея: sevlll777

Подсказка 1
Подсказка 2
Разбор
Решение
Оценка задачи

1634B - Fortune Telling
Идея: crazyilian и antontrygubO_o

Подсказка 1
Подсказка 2
Подсказка 3
Разбор
Решение
Оценка задачи

1634C - OKEA
Идея: sevlll777

Подсказка 1
Подсказка 1.1
Подсказка 2
Разбор
Решение
Оценка задачи

1634D - Finding Zero
Идея: sevlll777

Подсказка 1
Подсказка 2
Подсказка 2.1
Подсказка 3
Разбор
Решение
Оценка задачи

1634E - Fair Share
Идея: sevlll777

Подсказка 1
Подсказка 2
Подсказка 3
Подсказка 4
Разбор
Решение
Оценка задачи

1634F - Fibonacci Additions
Идея: Mangooste

Подсказка 1
Подсказка 2
Подсказка 3
Разбор
Решение
Оценка задачи
Разбор задач Codeforces Round 770 (Div. 2)
  • Проголосовать: нравится
  • +333
  • Проголосовать: не нравится

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

Thanks for fast editorial!

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

Problem B is the best problem I have seen in a long time!

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

Lightning-fast editorial

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

fast editorial!

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

Thanks for the fast tutorial

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

Problem B is very good! Thank you for so good 1200 problem!

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

What a great problem set! Thank you !!

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

B is nasty

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

E and F are great!I like them!

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

My solution to problem A is hacked

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

Great Problem E & F!They're the best problems I've seen in div2 :)

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

thanks for providing hints!!!

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

I have a different solution to F (I'm not sure if it is correct):

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

Why there are so many FSTs

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

Thanks.

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

In Korea, there is a similar problem with F. It was a great round, thanks.

https://www.acmicpc.net/problem/20305

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

I like Editorial With Hints

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

Congratulations, the author of this round. You scared AI away on behalf of humans.
They didn't compete at all!

The problems are so good, I thought, although they will give me a negtive rating change.

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

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

Here is a more casework-y solution for D using at most $$$2n-4$$$ queries (can be trivially improved to $$$2n-5$$$):

First of all, query all triples of the form $$$(1, 2, x)$$$. Store the values of $$$x$$$ that yield the maximal answer.

Exactly one position yields maximum
All positions yield maximum
Otherwise
»
5 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

For B, I just took everything modulo 2 and checked if the result could be obtained by adding Alice's number to the elements of the array modulo 2. I can't believe it worked. But I felt B was a lot harder than normal

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

My solution to D within $$$2n-5$$$ queries: 145449958

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

Problem F really should be swapped to D. It only had less than 100 AC because it's the last problem.

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

I still can't understand problem B

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

    If A[i] is odd, then regardless of which operation they choose, their number will change parity. If A[i] is even, then regardless of which operation they choose, their number will stay the same parity. x and x+3 are different parity, so regardless of what operations they choose, they will remain different parity. Check the parity of x compared to the parity of y after going through k odd numbers.

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

    Since XOR and SUM(or addition) have same effect on parity

    • odd + odd = even

    • even + even = even

    • odd + even = odd

    Hence after performing all the operations on input x there must be some parity of the result that should be same as parity of given output. Say after performing all the operations on x we get the result as odd number so output y given in the question must also be odd hence (sum(a) + x + y)%2 == 0 . And Why is it sufficient to check just the parity? Because it's given in the problem that answer always exist and parity of (x + 3) is different.

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

    In this problem, if the answer is not Alice, it must be Bob (Jury guarantees). Vice versa.

    The + and $$$\oplus$$$ operations have one thing in common: the parity of the res of A + B or A $$$\oplus$$$ B will be opposite with A only if B is an odd number. Visually:

    A B A+B and A $$$\oplus$$$ B are both
    odd odd even
    odd even odd
    even odd odd
    even even even

    So we can count the odd numbers in the input array. If the number of odd numbers is an odd number, the parity of the final result will be opposite to the starting.

    If the number of odd numbers is odd, then the parity of the starting number and ending number must be different. So if $$$x$$$ and $$$y$$$ have the same parity, it's impossible to let Alice win. Then the answer will be Bob.

    On the contrary, if the number of odd numbers is even, the parity of the starting number and ending number must be the same. So if $$$x$$$ and $$$y$$$ have different parity, it's also impossible to let Alice win. Therefore, the answer is also Bob.

    For other conditions, Alice will win.

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

Problem F's Time Limit is 1s,to be honest,I think it is meaningless,boring and FUCKING.My solution is $$$O(n)$$$ but I used "cin" to read a char.During the last 10 sec I submitted it.Then I got TLE on 7?

And what is the fact? Some solutions about $$$O(nlogn)$$$ even $$$O(n\sqrt{n})$$$ passed the systemtests, ridiculously ,some solutions about $$$O(n)$$$ failed the systemtests or failed the pretests.

Don't you think you had the order reversed??

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

    Your account has no submissions in the past two weeks, so evidently, you're outing yourself for competing with an alt in this round. That also makes it impossible for anyone to look at your submission and figure out what was going on.

    But besides that, I'm not sure why it's the authors' fault that you chose a slow I/O method. My solution (145428158) passes comfortably using cin with the standard line of I/O optimizations.

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

    In addition, your solution uses absurd amount of extra % operations, that are very slow when modulo is not constant.

    Nowdays solutions usually requires fast io to work in time because everyone uses it. More people will send slow solutions but just with fast io and get AC if tls were oriented on slow io solutions. The fact that nlogn and nsqrtn were accepted is sad, but we can't do anything about that because these solutions are vety optimized, and we want people not struggle TOO much with linear solutions, so we can't make tl even lower. Anyway, we have pyhton solutions that works under 1 second, so cpp solutions should feel more than comfortable.

    (Also, don't talk too much that you use fakes, it's kinda bannable)

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

    Even a relatively unoptimized solution passes in 280ms, which is very comfortable:

    145479475

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

    Definitely!Just now I submitted a code with "cin" and sentences,such as "ios::sync_with_stdio(false)",to read,and then I got TLE on test 9. 145534508

    Then I change nothing in my code but "cin" to an inline reading function "read()".Guess what?I got AC! 145534597

    Both my code run an algorithm about O(n) and the first submission failed because of READING!

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

    I think the problem which can't make the code with right complexity get AC is stupid.

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

My solution to D in around $$$1.5n$$$ queries 145469547

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

задача Е мне немного напомнила Е с первого отбора на Innopolis Open 2022, там так же была похожая подгруппа, когда массив А был равен массиву Б, и там надо было вместо потоков писать эйлеровость

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

Video editorial for anyone wanting looking

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

For problem F:

  1. What is the motivation for the construction of the auxiliary array D?

  2. Is there any solution which utilizes the fact that $$$F_n = \mathbf{A}^n$$$, where $$$\mathbf{A}$$$ is the matrix $$$[[1,1], [1,0]]$$$? Then, the problem would be like adding a bunch of geometric series, which seems maybe possible idk.

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

    My motivation: the difficult part of this problem is clearly performing range Fibonacci updates, so our first order of business is to simplify the queries. One common way of simplifying range queries is to transform the array in order to turn range queries into point queries (consider, for example, the standard trick of storing the difference array instead of the original array in order to handle range updates/point queries using a BIT or standard segtree). When we perform standard range additions, the change in $$$x_n - x_{n-1}$$$ is zero for points in the middle of the array; in this case, we see that for points in the middle of the update, the change in $$$x_n - x_{n-1} - x_{n-2}$$$ is zero. Therefore, after performing the given transformation, the range updates influence only a few points of the array, which is what we hoped to achieve.

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

I bow-down before my master who came up with problem B.

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

Why in problem D , constraints were given for n^2 time complexity as the problem can be easily solved in O(n).

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

swap(B,C)

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

For the pretest 3 667765307 0 150058801 880433548 of D, why my solution gave answer 4 2 locally, but 4 3 on codeforces? (Sorry for my poor English)

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

If problem B was as follows : Alice starts with x and Bob starts with x+1 it woulda been much more solvable coz then one would find easily an answer to the question "What does x and x+1 mean or contribute to the solution" I don't see why the authors chose x+3 over x+1 maybe I missed something that makes it crucial to the problem

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

    I think they chose x+3 in order to make the solution not so obvious.

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

    why would they want to make it more solvable you have to do this thing....

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

    We had 3 options for this number: $$$x + 1$$$, $$$x + 3$$$ and $$$x^2 - 1$$$. Third one tricks you with $$$x^2-1 = (x-1)*(x+1)$$$, so we decided it'll be too hard. We thought that with $$$x+1$$$ problem becomes easier than we want, because it forces you to think about a parity. So finally we decided to pick $$$x+3$$$ as "the golden mean". After contest I can say, that it was better to put $$$x+1$$$ instead of $$$x+3$$$, but we really didn't expect that problem B will be that hard, sorry for this.

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

In problem C, I can't understand why this arrangement is not Correct!!,

n = 2, k = 3,

1 2 6

3 4 5

Please Help!!

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

Can someone explain problem B?

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

    (x+y)%2 == (x xor y)%2 so whatever you do doesn't matter at the beginning alice and bob have numbers with different parity so at the end also they will have numbers with different parity hence only one of these can be winner

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

Was AI participating?

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

I didn't manage to solve B but for me it's the best problem I've ever seen on codeforces. It's so simple when you know the solution. I feel extremely stupid now.

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

If on B we modify the fact that Bob starts with x+3 and lets say he will start with x+z ,is this problem solvable under these constraints? for z odd is the same problem, but i am interested in z even.

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

Can anyone tell me how you came up with a solution for E? Are there any other similar problems that use Euler circuit in a similar way?

I was able to came up with max flow solution but it was too slow. I also now how to find Euler circuit. Just have no idea how some could connect that algorithm with problem E Thx in advance

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

Thank you for writing editorial in this format. It helps beginners like us when hint is given instead of direct solution.

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

Solution for [problem D]:-(https://codeforces.me/problemset/problem/1634/D)

Idea:-

Disclaimer:- min and max here is index of min and max element. I am not claiming index at min to be min and max to be max but instead saying that one of them is for sure min and max.

Think of a situation, where we are able to find the max and min elements of the subarray that we have already traversed and we have the difference diff = element at max — element at min. So traversing to the next element will make changes to the current diff only if next element is smaller than min or greater than max.

We are going to update ** max , min , and diff** according to that and finally max and min is going to be our answer. (i.e if the new element is making changes to diff then update or otherwise skip)

  1. So First, I find min and max of the first four elements.(Took 6 queries).

  2. Second, I am iterating from the 5th element onwards and firing two query for each element

    i.e ? min, "any element that is not min or max", ith element

    **?  max , "any element that is not min or max", ith element**

again if the value we are getting is greater then our current diff value then we update accordingly.

Queries :- 2*n-2

Here is my submission:- Code

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

    Hey, I had the same idea but didn't get it to work during the contest. I have thought about it and am starting to feel convinced that this cannot always work i.e. it not possible to find the max and min of the first four elements reliably. For this, consider the first 4 numbers to be 1, 1, 2, 2. Note that there are exactly 4 possible queries on these 4 numbers (each query leaving out a different number). Moreover, each query must contain a 1 and a 2 which means that each query returns 1. So no matter how your code uses the information of your 6 queries (each of them would return 1), there must be a permutation of 1, 1, 2, 2 such that your min and max both point to 1s (or both point to 2s).

    I personally failed because of this issue on test 5. Since you passed all tests I am wondering whether my argument has some flaw. Or maybe not all permutations were actually checked in test 5?

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

      That is why there is solve2 function asking for two further query. Index 1, 2, 3 ,4 Value 1, 1, 2, 2

      q1-> 1 , 2 , 3

      q2-> 1 , 2 , 4

      q3-> 3 , 4 , 1

      q4-> 3, 4 , 2

      Now for each query, I will get my diff = 1 So, let's select first two queries as deciding one now since in {(1,2,3)and(1,2,4)} first two elements are in both so I am assuming that 1 and 2 is probably going to be my answer but now I will ask query two more query to verify it:-

      q5-> 3 , 4 , 1

      q5-> 3 , 4 , 2

      now if the results are still the same then I can for sure say that one of my min or max is coming from 3 or 4. so now my updated answer will be {3,1} or {3,2}.

      I wrote the solve2 function for solving this issue only. You can dry run and can check by yourself.

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

        Thanks for your answer.

        First note that your queries 5, 6 are redundant i.e. they don't give you more information than you already had.

        Now, based on your example and explanation I would think that your code would fail if the sequence were 1, 2, 1, 2 or 2, 1, 1, 2. Note that all queries would yield exactly the same result even though the input order changed. In particular, your code would have to decide exactly the same on either {3, 1} or {3, 2} to be the max/min pair. But this would be wrong here i.e. {3, 1} would be wrong for 1, 2, 1, 2 and {3, 2} would be wrong for 2, 1, 1, 2.

        However, test 5 checks both these cases and you pass them. So something in your code makes it work despite not having correctly found the min/max pair in the first 4 numbers.

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

          Thanks for pointing it out.

          Seems like they don't have a check for case 1,2,1,2 otherwise my code is not going to pass it.

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

            Thanks, for making me think harder into this. I checked it once more, the fact i.e there is one and only one zero leads my code to run correctly.

            Look that the code is giving {1,3} as its min-max value for {1,2,1,2} ohkk that is not correct but even after that, it is for sure is the condition when zero is not in our first four combinations. but as we move further whenever we encounter zero it will lead our diff to be maximum of all and update once of min or max to its index. And hence zero is always going to be in our min or max.

            You can also think in this way that our first six operations is not for finding min or max but for capturing index of zero, if it is there in the first four combination. And if it is not then it is going to be captured in our further iteration.

            Now, Hope this will help. Again thanks.

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

Can anyone please explain the approach for Problem E ??

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

There is a typo in editorial of Problem D -- $$$\overline{d} = c - a = c$$$, not $$$c - b$$$

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

Can anyone explain the solution to hint 2 of Problem F ?

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

I didn't solve B but when I looked at the solution I kind of went "ooooooohh, that's really cool" Thank you, very cool

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

The n<=1000 constraint in task D was really misleading...

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

    We had to lower the constraints due to, uh, Windows. Input-output is terribly slow on Win32, and if C/C++ programmers have those magic lines for speeding up I/O a bit, Python guys (as well as some other languages) have nothing like that. We wanted Python solutions to pass too, hence a lower constraint.

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

I have a sexy solution for problem D. It uses only ceil(3/2*n) queries.

Here it is: 145493474.

Can anybody hack it?

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

god E is unbelievable!!!

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

For problem D: Finding Zeroes: For every 4 queries that the editorial makes, you can actually do it in 3. Here's a gist of the idea.

First, we need to understand how the editorial eliminates 2 non-zero numbers amongst the given 4 numbers, $$$(x_1, x_2, x_3, x_4)$$$. WLOG, assume that $$$x_1 \leq x_2 \leq x_3 \leq x_4$$$. As given in the sample example, you query for

Tuple Result
$$$(x_1, x_2, x_3)$$$ $$$(x_3 - x_1)$$$
$$$(x_2, x_3, x_4)$$$ $$$(x_4 - x_2)$$$
$$$(x_3, x_4, x_1)$$$ $$$(x_4 - x_1)$$$
$$$(x_4, x_1, x_2)$$$ $$$(x_4 - x_1)$$$

If you consider $$$x_i$$$ as points on the number line, then each query gives you the length of the interval. Now, notice:

  1. $$$(x_4 - x_1)$$$ is the largest interval length, i.e, the maixmal result amongst the 4 queries.
  2. $$$(x_4 - x_1)$$$ is repeated at least twice.
  3. When $$$(x_4 - x_1)$$$ is repeated, the intersection of the corresponding queries represent a $$$(min, max)$$$ pair.

Hence, we have the approach of the editorial. Query all 4 cyclic triplets, find the maximum value, find another occurrence of it, take the intersection and eliminate 2 numbers which aren't in the intersection.

Now, how to reduce this to 3 queries? We know that the maximal result has to repeat at least once. So, if we just make the first 3 queries, either the maximal result has already been repeated, in which case we simply take the intersection, or the maximal result has not yet been repeated, in that case, we know what the result of the last query is going to be (the maximal result itself), so we can avoid making the query :)

Number of queries used: For every 4 queries in the editorial, we use 3. Hence, for even $$$N$$$, we have:

$$$\frac{(n - 2)}{2}*3 = \frac{3n}{2} - 3$$$

For odd N

$$$\frac{(n - 3)}{2}*3 + 3 = \frac{3n}{2} - \frac{3}{2}$$$
»
5 лет назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится

Problem B is such a nice problem and when I realize the solution of it I was so surprised!I laughed out at the same time. P.S:More B-like problem pls!

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

This contest is for Alphacode with E&F which is not flexible enough.

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

B was really amazing problem i didn't know about that concept yet but now i got that.

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

Problem D is really a great problem (

BTW, Why can't I use fwrite in Problem D even using fflush(stdout) at the end of every output? (It get ILEed at the first testcase)

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

In case someone is interested, Video Solutions for A-D

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

Can problem E be solved using bipartite matching?

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

    Yes, for each row, connect (i,2*j) and (i,2*j+1), for 0<=j for each distinct value, connect the 2*i th position and the 2*i+1 th position of this value's occurrences.

    If every distinct value's frequency is even, we can see that there is no odd length cycle in this undirected graph that we just constructed.

    Why? If 2 nodes are linked, either they are sitting next to each other on the array, or their occurrences as values are next to each other. Our construction allows at most 2 edges for each (i,j), and these 2 edges are of different types. If odd length cycle occurs, then it contradicts our construction.

    Since there is no odd length cycle, the graph is bipartite, and thus can be coloured into equal number of black and white nodes.

    The final colouring will be our answer.

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

Problem E is beauty. Loved it. <3

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

Hi I am facing trouble in problem E 145451100 it is giving WA on Test case 3 I cannot figure out why? I have followed a different approach. Please help Thank u in advance

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

AI after reading quotes in the Problems:

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

A minor quibble on the tutorial for problem E, but I think an important one nonetheless:

Is it necessarily an Eulerian circuit? To my mind, rather, it is a series of circuits (possibly just one, in which case yes, Eulerian) which start and finish at the same end-point, rather than necessarily being an Eulerian circuit of the whole graph. You could consider each circuit an Eulerian circuit of its connected component.

Consider the following example:

4
2
1 2
2
1 2
2
3 4
2
3 4

Now label the numbers 1 to 4 as vertices 1, 2, 3 and 4, and the arrays as vertices 5, 6, 7, 8.

The two required circuits are 5 -> 1 -> 6 -> 2 -> 5 and 7 -> 3 -> 8 -> 4 -> 7. Neither is an Eulerian circuit of the graph. Instead they are distinct circuits which, together, traverse every edge.

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

My take on Problem B: Reason why + and ^ have the same effect on the last bit is that a+b = a^b+(a&b)<<1, so we are sure that the last bit in (a&b)<<1 is 0. If we add 0 to any number it doesn't change so for the last bit we can ignore adding (a&b)<<1 and simply take xor of all values of a with x and x+3, the last 2 bits in x and x+3 will always be different, so exactly one of them will give the same parity as y and that is our answer.

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

This is a good round. But I think there is a big difficulty gap between Problem C and Problem D.

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

For problem C, I think the simpler and crucial observation is that any A.P, as long as the common difference is even, is divisible by n (no. of elements in A.P).

Since,

Sn = n/2 (2 *a + (n-1)*d), n = no. of terms in A.P, d = common difference

To Rewrite, Sn = n * (a + (n-1)*d/2 )

Clearly, if 'd' is even then the sum is divisible by 'n', which translates to the number of shelves being even in the problem.

And now, it's easy to see that as long as the number of shelves are even, a solution will exist. And a simple solution is the A.P with common difference = n

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

There is a simpler solution for D. Consider fixing the first 2 numbers. Iterate over all n-2 possibilities for the last number and take the index with the maximum result (if all results are the same we can be assured that the 0 is one of the first 2 numbers). Now we know that the last number is definitely either the maximum element or the 0 element. Next take the second number and iterate over n-2 possibilities for it and choose the one that maximizes it (if all of the results are the same then the first or last number is definitely the 0). Once you have the index that produces the maximum result the second number or the last number is definitely the 0.

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

Because problem B has a "dp" tag involved in it, Can someone tell, how dp can be applied to solve it?

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

I love how in B and D is used alternative thinking: define the answer by knowing which ones are not answer at all. Thanks for the creators of such an amazing contest!

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

I think AI can't solve any problem in this contest.

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

how can I think of the Difference of F

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

Finally got my segment tree accepted in F, but I had to push it very hard. It's also (in my opinion) a lot harder to code than the official solution, so I don't see any reason to punish this one. Which makes me curious, what was the motivation behind the time constraints in F?

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

Another approach for problem E without using eulerian circuit:

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

It is (nearly) the best div.2 D I have ever met.

I wrote a solution to it in chinese link

It seems to be more difficult than the official solution :-(

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

Cool problems!)

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

I really loved the problems this time around. Since I mocked this contest, I felt solving with hints make the learning process x100 times better as I get some help but not too much and can solve the problem still kind of by myself. Finding zero was a really elegant interactive problem, and problems B. and C. were amazing. Thank you for the great practice!

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

Honestly I feel like the F problem is genius and really smart

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

Problem E is pretty similar to IMO 2020, Problem 3

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

I have a solution of $$$D$$$ which requires max $$$2n-3$$$ queries

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