cry's blog

By cry, 2 years ago, In English

This was our first time setting a Div.4 contest. We sincerely hope you enjoyed the problems!

1985A - Creating Words

Problem Credits: cry
Analysis: cry

Solution
Code (C++)
1985B - Maximum Multiple Sum

Problem Credits: cry
Analysis: cry

Solution
Code (C++)
1985C - Good Prefixes

Problem Credits: sum
Analysis: cry

Solution
Code (C++)
1985D - Manhattan Circle

Problem Credits: cry
Analysis: cry

Solution
Code (C++)
1985E - Secret Box

Problem Credits: cry
Analysis: cry

Solution
Code (C++)
1985F - Final Boss

Problem Credits: cry, sum
Analysis: cry, sum

About Hacks
Solution
Code (C++)
Bonus
1985G - D-Function

Problem Credits: cry
Analysis: cry

Solution
Code (Python)
1985H1 - Maximize the Largest Component (Easy Version)

Problem Credits: sum
Analysis: sum

Solution
Code (C++)
1985H2 - Maximize the Largest Component (Hard Version)

Problem Credits: sum
Analysis: sum

Solution
Code (C++)
  • Vote: I like it
  • +113
  • Vote: I do not like it

| Write comment?
»
23 months ago, hide # |
 
Vote: I like it +33 Vote: I do not like it

tomato

  • »
    »
    23 months ago, hide # ^ |
     
    Vote: I like it -12 Vote: I do not like it

    tomato

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

      tomato

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

        tomato

        • »
          »
          »
          »
          »
          23 months ago, hide # ^ |
           
          Vote: I like it +2 Vote: I do not like it

          tomato

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

            tomato

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

              tomatooooo

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

              tomato

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

                tomato

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

                  tomato

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

                  tomato

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

                  tomato

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

                  tomato

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

                  tomato

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

                  tomATO!?

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

                  tomato

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

                  Tomato

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

                  tomato

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

                  tomato

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

                  tomato

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

                  potato

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

                  Tomato

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

    what's mean? why so many "tomato"

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

    tomato

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

    tomato

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

    tomato

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

F : Boss Fight Detailed Video Tutorial Priority Queues and Maps

https://youtu.be/COkEV373zRo?feature=shared

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

got hacked on F :(

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

Hopefully rating changes will come out soon!

»
23 months ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

my binary search solution wasnt hacked because i checked for overflow :D way to go

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

What is the difference between my binary search sol and those that got hacked? I wanna know more on why I got pass the hacking phase.
https://mirror.codeforces.com/contest/1985/submission/265355482

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

    It's when someone uses a very high value for the upper limit of binary search (like 1e18). Then (turns/c[i])*a[i] could go very high, even above 64 bit long long. So to AC you could either use int128, or set a lower upper limit such as yours. Or use a lang like python :)

    • »
      »
      »
      23 months ago, hide # ^ |
      Rev. 2  
      Vote: I like it +6 Vote: I do not like it

      You're wrong, it's not because of the upper bound you take. I've also taken 1e11 as upper bound but got hacked. 265328896

      If all attacks have damage 2e5 and cooldown is 1, sum can reach 2e5 x 2e5 x mid. if mid is >= 1e8, it overflows. Yours is correct because of the h -= a[i]. It prevents running binary search in such cases.

      The correct way to deal with this is to use 128 bit integer or break out of the loop as soon as sum becomes >= h.

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

Anyone who used DSU for H1,H2 explain your solution?

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

    You can use dsu to join components of '#'. Notice that for any $$$(n * m)$$$ grid, we can represent $$$(i, j)$$$ as $$$(i*m + j)$$$. So initialize a disjoint set of $$$(n*m)$$$ components at first.

    Then whenever you encounter a '#', you can run a flood fill via dfs / bfs and take $$$(i, j)$$$ = $$$(i*m + j)$$$ as the parent for all '#' you encounter.

    Now you have size of all the connected components of '#'.

    Now you can either '#' an entire row or column. I'm considering row here, same thing can be done for each column.

    Notice when you '#' an entire row, You already have some '#' as parents, once you '#' the row, all these parents combine together.

    One more thing, the parents from row above and row below will also be joined in this new component.

    Hence the final answer would be $$$Count('.')$$$ + size of each parent you encounter.

    To prevent taking a parent twice you can use the set.

    Code:

    Spoiler
  • »
    »
    23 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    I use DSU+DP to calculate four arrays: when the operation is at row=x, col=y, what's the total size we can get for the top-left/top-right/bot-left/bot-right w.r.t to (x, y).

    I use set to track rather than unordered_set so the complexity is O(mnlog(n)): https://mirror.codeforces.com/contest/1985/submission/266763301

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

tomato

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

For problem F, if we take R as 1e12 it is being hacked

»
23 months ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

tomato :) btw a question. will the time complexity of priority queue solution be also $$$ O(hlogn) $$$ ?

»
23 months ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

Fast Editorial!

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

Tomato

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

this was my first contest on codeforces , managed to solve A and B , got TLE on C . should i register for upcoming div 2 contests or just wait for other div 3 or div 4 contest ? What should i do , suggestions ??

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

tomato

»
23 months ago, hide # |
 
Vote: I like it +18 Vote: I do not like it

I'm still eager to see a proof of why there are no such $$$n$$$ that satisfy $$$D(n \cdot k) = k \cdot D(n)$$$ in the case of possible carries in multiplication.

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

    Same. I just guessed it

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

    Yeah, guessed it is well, 'cause haven't managed to construct a formal proof of that fact in a reasonable amount of time during the contests. Wonder if such even exists. If yes, I am interested to see it too.

  • »
    »
    23 months ago, hide # ^ |
    Rev. 4  
    Vote: I like it +7 Vote: I do not like it

    We can see that for a number with more than one digit, its $$$D$$$ will be smaller than itself(this is how number expression works!). For a number with exactly one digit, its $$$D$$$ is equal to itself.

    Imagine we are multiplying a single digit $$$x$$$ by $$$k$$$, resulting in a carryover. We get a result $$$kx$$$ which has more than one digit. And we expect $$$D(kx)$$$ to be $$$kD(x)$$$, which is equal to $$$kx$$$ ($$$x=D(x)$$$). Thus, our $$$D$$$ has been smaller than the target. It’s impossible to compensate for this with another digit multiplication since $$$D(ky)$$$ won’t be greater than $$$ky$$$ for any $$$y$$$.

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

    For each carry, D will be reduced by 9: the carry will add 1 to D instead of adding ten.

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

    Yeah shitty editorial.

»
23 months ago, hide # |
 
Vote: I like it +5 Vote: I do not like it

I submitted the hacked solution for question F again and it got accepted then how is it possible that my solution got hacked, please help!! cry

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

Problem G was ProjecteulerForces XD

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

tomato

»
23 months ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

Can anyone help explain why this equation is wrong only with large numbers in problem F using the binary search method?

The number of times we use the current attack is ceil(mid / (c[i] + 1)).

(c[i] + 1) is the segment length in which we can perform only one attack.

Dividing gives us the number of segments we have, and any float will be ceiled. I don't understand why this is incorrect. Can anyone clarify?

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

When will start System testing?

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

Is there a formal proof for B?

  • »
    »
    23 months ago, hide # ^ |
    Rev. 8  
    Vote: I like it +14 Vote: I do not like it

    Let's consider any number greater than $$$n \gt 3$$$, then for $$$x=2$$$ we have $$$k = \lfloor n/2 \rfloor$$$ , hence $$$2 \cdot (1+2+ \dots k) = k \cdot (k+1)$$$, which is $$$n \cdot (n+2)/4$$$ for even $$$n$$$ and $$$(n^2-1)/4$$$ for odd $$$n$$$.

    Consider any $$$x \ge 2$$$, then, $$$g(x) = \frac{(n+1) \cdot (n+1-x)}{2x} \le \frac{x \cdot k \cdot (k+1)}{2} \le \frac{n \cdot (n/x+1)}{2} = \frac{n \cdot (n+x)}{2x} = f(x)$$$. On evaluating, we get $$$f'(x) = \frac{-n^2}{2x^2}$$$ and $$$g'(x) = \frac{-(n+1)^2}{2x^2}$$$, hence a decreasing function. Thus, $$$f(x)$$$ or $$$g(x)$$$ should be maximum at $$$x=2$$$.

    If the $$$f(x)$$$ and $$$g(x)$$$ logic is not convincing, you can think that $$$\lfloor n/x \rfloor$$$ will be always of the form $$$(n-\lambda)/x$$$ ,where $$$0 \le \lambda \lt x$$$ and it depends on $$$n$$$. [In fact, $$$\lambda = n \% x$$$] Thus the sum $$$h(x, \lambda) = \frac{(n - \lambda) \cdot (n- \lambda +x)}{2x}$$$, where $$$\lambda$$$ itself depends on $$$x$$$ and $$$n$$$. But, the for the extreme values of $$$\lambda$$$, the function $$$h(x)$$$ essentially takes the form $$$f(x)$$$ or $$$g(x)$$$, and it can be shown that it will work for any intermediate $$$\lambda$$$ as well.

    PS: I am not sure why the above explanation doesn't work for $$$n=3$$$, could anyone point it out? Thanks!

»
23 months ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

cry for H2 on point 3. of the last paragraph, shouldn't it be subtract s on the subrectangle?

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

write proof for G, please

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

    If I add two numbers and their digit carry over, then the digit sum of the new number will onviously decrease than the sum of the digit sum of the first two numbers. Same thing for k additions, if it is same after k additions, there should still be no carry. If there is no carry then each digit can be calculated for separately. More precicely each digit can range from 0 to 9/k. If a number is less than 10^l, then there are l digits to be filled so 9/k+1)^l. since we are asked in between, we can simply subtract the two values for r and l.

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

Is it just me or the code for Problem E is wrong?

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

H2: We find some $$$O(n^3)$$$($$$O(nm\times \min(n,m))$$$) solutions like 265329368. Their solutions need to enumerate each cells in the smallest rectangle containing the connected blocks.

The data like

#.#.#.#
..#.#.#
###.#.#
....#.#
#####.#
......#
#######

or

##.##.##.##
.##.##.##.#
#.##.##.##.
##.##.##.##
.##.##.##.#
#.##.##.##.
##.##.##.##

can let them have $$$O(n^3)$$$, but in fact they just need to run about $$$\frac{n^3}{12}$$$ times. We tried another construction, but it also failed. I think these solutions are wrong, hope the new construction can hack them.

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

Problem G was really good. Though I did not figure it out until I read the solution.

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

So how many testcases are there now in problem F?

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

tomato

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

Wow, G solution was so easy... I almost came up with the idea that for each digit there are 9/k+1 digits, but I used 10/k+1, so couldn't figure out the answer(

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

Hey Guys, did anyone solve E. Secret Box in less than O(xy)?

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

    Yes, it is solvable in O(k).

    Here is the complete solution. Find all divisors of k and store them in a vector(let's call it div). The maximum size of this vector is sqrt(k) (let's call it size sz). Then you can brute force for x and y in this vector and calculate x = k/x/y. Now if these x,y,z satisfy given constraint then you got a valid dimension.

    Overall complexity(O(sz*sz) where sz = sqrt(k)) => so O(k) Here is my O(n) submission: https://mirror.codeforces.com/contest/1985/submission/265647792

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

H1 can be solved using RollbackUnionFind

Submission: https://mirror.codeforces.com/contest/1985/submission/265404470

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

tomatoo

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

I have a friend who solved f using binary search and value of right 1e18 but it passes system tests.How?

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

tomato

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

Its sad that being from India most of the cheaters and leaked solution are from my country although it does not affect my personal growth but it ruins the sportsmanship .. sad !!!

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

    nothing sad, colleges focus on rubbish curriculum poor faculties, such high competetion for low paying jobs too.. then kuch to chahiye resume me bharne ke lie. not supporting cheating but most people start in their colleges , cp needs time and dedication blood sweat. but then students should have to do dev also, core also. seeing this they have nothing but to cheat and get rating tag (specialist/expert)..

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

just out of curiosity i am asking... in the E question is there any mathematical way to find the optimal sides of the smaller box directly(in constant time or even if in O(N) time) rather than using nested loop?

  • »
    »
    23 months ago, hide # ^ |
    Rev. 2  
    Vote: I like it 0 Vote: I do not like it

    You can downgrade it from 3D to 2D, so if you can solve 2D version in constant time then you can solve 3D in linear time. In my opinion, the problem requires you to fix the shape first which I think may not be possible to have a solution faster than $$$O(min(min(x, y), \sqrt[]k))$$$.

»
23 months ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

265530894 This is my approach for problem F — Final Boss. I am fairly new to codeforces. I am not able to solve this error. Can anyone help why i am getting this diagnostics error?

Thanks

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

tomato

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

For problem E,
Can any one explain for $$$h \lt 10^9$$$, why the given time complexity holds true? Why in $$$log$$$ there is $$$h * max c_i$$$?
Thanks.

  • »
    »
    23 months ago, hide # ^ |
    Rev. 2  
    Vote: I like it 0 Vote: I do not like it

    $$$h*maxc_i$$$ is one upper_bound of turns to kill the boss.

    It's easy to prove. If you only use the attack that have max cooldown time of all attacks , assume that this attack only takes 1 damage , after $$$(h-1)*maxc_i+1$$$ turns the boss will die. This is the worst case, so you know that in $$$(h-1)*maxc_i+1$$$ turns the boss must die. For $$$(h-1)*maxc_i+1 \lt h*maxc_i$$$ ,in convinient we use $$$h*maxc_i$$$ for the upper_bound.

    $$$log$$$ comes from binary_search approach.We use binary_search to find answer. You can find its time complexity proof on the Internet.

»
23 months ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

G:(D-Function) Can someone explain, why do we add mod in this print((pow(9 // k + 1, r, MOD) - pow(9 // k + 1, l, MOD) + MOD) % MOD) to the result of the difference?

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

    we know that pow(9 // k + 1, r, MOD) $$$\in [0,MOD-1]$$$ and pow(9 // k + 1, l, MOD) $$$\in [0,MOD-1]$$$

    so it's possible that in some cases we have (pow(9 // k + 1, r, MOD) < pow(9 // k + 1, l, MOD)

    To avoid print a negative value , we add a MOD to the result.

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

For problem G, how to prove the legal number n should be only that each digits of n multiple k have no influnance to the next digits.

  • »
    »
    23 months ago, hide # ^ |
     
    Vote: I like it +8 Vote: I do not like it

    using $$$D(x+y) = D(x) + D(y) - 9*carry$$$

    To prove this formula , you can start with one digit , and it's correct. And you can expand this to all digits.

    so we have $$$D(k*n) = k*D(n) - 9*carries$$$ .

»
23 months ago, hide # |
 
Vote: I like it -8 Vote: I do not like it

tomato

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

Does anyone get stack overflow in test 5 in Problem H2 in Java while implementing recursive dfs? In C++, it seems to be working (the author's solution uses recursive dfs). Any reason for this? Submission: 265565304

»
23 months ago, hide # |
Rev. 4  
Vote: I like it 0 Vote: I do not like it

For problem F,
Can anyone help me to understand how $$$\lfloor{\frac{t - 1}{c}}\rfloor$$$ is derived?

Also, please let me know if it is a standard or generic way to calculate in such situations.
Thank you in advance.

  • »
    »
    23 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it
    say c = Cool Down , t = Turns
    
    now attacks will be on the turns : 1 , 1+c , 1+2c , 1+3c . . . 
    so , kth attack will be on the turn : 1 + (k-1) * c
    
    say , till 't' turn , 'k' attacks has been done
    so => turn on kth attack <= 't' turn
       => 1 + (k-1) * c <= t
       => k <= (t-1)/c + 1
       => k = (t-1)/c + 1 (since division gives floor result, so we can just equate)
    
»
23 months ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

For H1 I am using a map of pairs called compNum which basically marks each '**#**' with its component number. I have taken key pairs because I need to store coordinate of '**#**' and the value of this map is component number. And at the same time using another unordered map<int,int>cnt I am counting the size of the current component number and using a visited matrix I am keeping track of whether the neighboring '**#**' is visited or not, standard dfs stuff. Then for each row I am placing '**#**' and counting answers as follows: FOr each row ri, if the cell contains '**#**' then using a map I am checking whether the component to which this cell belong to has already taken or not. The compNum map gives the component of this cell. And if it is not '**#**' then I increment the current answer by 1 because I place a new '**#**' in place of '**.**' and now I check four neighbors if any neighbor is '**#**' and its component is not taken then I add the size of the component to my current answer and proceed. Finally when I am done computing the value of the current answer for a row then I try to maximize my final ans with the current answer same stuff I do for columns. But I don't know why it is giving TLE. Any help will be appreciated. Thank you for spending time in understanding my approach.

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

good round, thx, i got green

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

Can someone tell me whats wrong with this submission 265677247

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

How to prove the conclusion of question B?

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

In the problem G floor(9/k) + 1 why we are adding +1

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

    floor(9/k)+1 is helping us find the number of distinct digits d we can place in a single position without making k*d overflow 9.

    For example for k=4, possible no. of d are 9/4+1=3 and these are d=0(4*0<=9),d=1(4*1<=9) and d=2(4*2<=9). That +1 is for the digit 0.

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

H1 : Can some explain this part?

            // Update prefix sums
            R[minR] += sz;
            R[maxR + 1] -= sz;

            C[minC] += sz;
            C[maxC + 1] -= sz;
  • »
    »
    23 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    If you need to add x to a range (i,j) in an array, you can iterate from i to j and add x to each array element. This would be in the O(n). Now if you have m such operations, it will be O(m*n).

    So a better way to do this is to use this prefix array trick. To add x in (i,j), you can add x to pre[i], and subtract x from pre[j+1]. Now if you make the prefix sum array of this array, it will give you a value for each index that's added to each corresponding array element.

    e.g: arr[]={0, 0, 0, 0, 0, 0} i=1, j=3 (0-indexing) After operation: arr[]={0, 1, 0, 0, -1, 0} The prefix sum array: {0, 1, 1, 1, 0, 0}

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

tomato

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

tomato

»
23 months ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

tomato Why tomato? why not apple or something ?

»
23 months ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

I tried to solve H2 but I got STATUS_STACK_OVERFLOW on test 5. Can anyone help, please? 266847431

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

tomato

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

我是帅哥

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

To satisfy D(k*n)=k*D(n), each digit d in n must become k*d after multiplying n by k

In solution of G how do we prove it? Can't there be a case where k*n has higher number of digits and it satisfies the property?

»
21 month(s) ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

For H2, Note that doing this naively will pass because of low constant factor and the fact that we could not cut this solution without cutting slow correct solutions

I believe the following test case will blow up naive calculations for the subrectangle of B

Test:

Spoiler

Result: Prefix sum solution 277004120 = 400ms. Naive solution 277003713 = 3400ms (in practice AC with 400ms since this test is missing)

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

cry and sum , hello sirs, really needed a help if you may. or if anyone else could, appreciated.

so., can anyone please help in letting me know whats wrong with this approach for 1985H1 — Maximize the Largest Component (Easy Version) ?

for a given row , i calculated for each # just above and just below it , the no of components its connected with , used a unique k-code , in the pair {no of connected components,k code of that component}

k code is only to identify unique additions in my count ct;

similarly i did for columns and thus have the ans.

submission: https://mirror.codeforces.com/contest/1985/submission/285054943

ik it is a bit messed up code but this is what i came up with and thought was a good idea nonetheless. if you could help me with it , it would be appreciated. thank you...

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

nah, i still weak)