Codeforces Round 1133 (Div. 1, Div. 2) is coming soon! Register here. ×

awoo's blog

By awoo, history, 3 years ago, translation, In English

1901A - Line Trip

Idea: BledDest

Tutorial
Solution (Neon)

1901B - Chip and Ribbon

Idea: Roms

Tutorial
Solution (Roms)

1901C - Add, Divide and Floor

Idea: BledDest

Tutorial
Solution (awoo)

1901D - Yet Another Monster Fight

Idea: BledDest

Tutorial
Solution (vovuh)

1901E - Compressed Tree

Idea: BledDest

Tutorial
Solution (Neon)

1901F - Landscaping

Idea: adedalic

Tutorial
Solution (adedalic)
  • Vote: I like it
  • +47
  • Vote: I do not like it

| Write comment?
»
3 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

In problem D, I am struggling to understand the statement. According to my perception, the answer to the first test case should be 7. I will choose i = 4. The chain of the indices to strike will be like 4->3->5->6->2->1. Please someone correct me.

»
3 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Reached Specialist, in this round.

»
3 years ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

problem E is a art.

It takes a lot of effort to achieve perfection in whatever any direction.

»
3 years ago, hide # |
← Rev. 2  
Vote: I like it 0 Vote: I do not like it

for C, if we have min = 2 & max = 11. since min is even then x=0 & min = 1, max = 5 now if I go according to the editorial. it would take a total of 4 steps (1,3 -> 1,2 -> 1,1). but when min = 1 & max =5, I can take x =0 and reduce in 1 step less (1,2 -> 1,1) total of 3.

am I missing something here?

  • »
    »
    3 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Of course. When min=1 and you don't add 1 then 1/2 = 0

    It's easier to think about it another way: if max is odd then by adding anything will not gain any steps reduction.

»
3 years ago, hide # |
← Rev. 2  
Vote: I like it 0 Vote: I do not like it

Problem D: If it's necessary to check all indices as a first target point (according to tutorial), then why problem statement says that "Vasya chooses the first target optimally"?

  • »
    »
    3 years ago, hide # ^ |
     
    Vote: I like it +4 Vote: I do not like it

    Vasya chooses the first target optimally

    How would you figure out the optimal first target without checking all indices as first target point?

    • »
      »
      »
      3 years ago, hide # ^ |
      ← Rev. 6  
      Vote: I like it 0 Vote: I do not like it

      Oh yeah.. I got it. We need to take the minimum of these max values for an optimal first target (if I'm not wrong).

      Thanks...

    • »
      »
      »
      3 years ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      Can't he choose the max element as the 1st target?

      • »
        »
        »
        »
        3 years ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        That's not always optimal.

        4
        4 5 2 1
        

        If we start at monster $$$2$$$ with health $$$5$$$, the attack might take the path $$$2\rightarrow 3\rightarrow 4\rightarrow 1$$$ and we need to start with $$$x = 7$$$. If instead we start at monster $$$1$$$ with health $$$4$$$, we can start with $$$x = 6$$$.

    • »
      »
      »
      5 days ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      It can be proven that we only need to check (first and last maximum element) and first and last element in general, we don't need to check the rest tho.

»
3 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

[Problem C] Can someone help me understand why choosing $$$x$$$ as the average between $$$max$$$ and $$$min$$$ (or $$$a$$$ and $$$b$$$) doesn't work?

I guess it has somethings to do with parities and rounding down, but I honestly cannot figure it out myself.

  • »
    »
    3 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    In addressing the question of why choosing $$$x$$$ as the average between the maximum ($$$b$$$) and minimum ($$$a$$$) values doesn't always yield the optimal result in problem C, it is essential to understand how the parity effects the calculations.

    We categorize the scenarios based on the parity of $$$a$$$, $$$b$$$, and $$$x$$$. By brute force, we identify eight possible parity combinations, but let's consider two illustrative examples:

    • When $$$a=2i$$$, $$$b=2j+1$$$ and $$$x=2k+1$$$, the difference is $$$\left\lfloor (b + x)/2\right\rfloor - \left\lfloor(a+x)/2\right\rfloor = j - i + 1$$$.

    • When $$$a=2i+1$$$, $$$b=2j$$$ and $$$x=2k+1$$$, the difference is $$$\left\lfloor (b + x)/2\right\rfloor - \left\lfloor(a+x)/2\right\rfloor = j - i - 1$$$.

    In the remaining six cases, the difference is $$$\left\lfloor (b + x)/2\right\rfloor - \left\lfloor(a+x)/2\right\rfloor = j - i$$$.

    The optimal strategy emerges from these calculations. Matching the parity of $$$x$$$ with $$$a$$$ tends to minimize the difference. This is because the difference doesn't depend on $$$k$$$ and different parity can lead to a larger difference when $$$a$$$ is even.

    Now, regarding your specific question, if $$$a=4i+1$$$ and $$$b=4j$$$, then choosing $$$x$$$ as the average, $$$x = \left\lfloor (a+b)/2\right\rfloor = 2(i + j) = 2k$$$, does not align with the optimal strategy. In this case, $$$x$$$ is even while $$$a$$$ is odd, and as we've established, matching their parities is crucial for optimality.

»
3 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Why there's a tag of binary seach in problem D: although it seems at first glance that we can go for a approach like BS. But then realised there's nothing to do with BS.

»
3 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Thanks for the fast editorial !

»
3 years ago, hide # |
 
Vote: I like it +12 Vote: I do not like it
»
3 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

For problem D, my after-contest solution only involved checking the first location, the last location, and the location with the monster that needs the most spell power to kill.

Submission: https://codeforces.me/contest/1901/submission/234308715

Is the test data weak, or is the strategy described above valid? Thanks.

»
3 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

In problem D, according to my understanding the worst case for 2 1 5 6 4 3 should be 2->1->5->6->4->3 and that would not be possible with 8 damage ?

  • »
    »
    3 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    We are optimally selecting the start point, then we have to consider worst case after selecting start point

»
3 years ago, hide # |
← Rev. 2  
Vote: I like it 0 Vote: I do not like it

nvm I set my dp = -1 if it's not visited but I forget that the dp might be negative

»
19 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

in problem e why didn't we use re rooting how are we sure every root will give the same answer ?

»
4 weeks ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

I solved the problem A