Every Technique/Algorithm I Used to Become Grandmaster

Revision en4, by Noble_Mushtak, 2023-01-30 06:20:07

Hi everyone, I became grandmaster today so I decided to go down memory lane and review every problem I have ever done in a CodeForces contest to look back and see every technique/algorithm I had to use to become a grandmaster. I am not sure how useful this is, I mostly think it's fun to look at all the old solutions I wrote and how different it was from how I write code now. I think the main takeaway is that, as many people have said before, you don't need to know or memorize a bunch of advanced algorithms to become grandmaster. As you will see, there are many popular algorithms that I have never needed in a CodeForces contest despite being a grandmaster. There are also many problems where I just say I use "ad hoc reasoning," meaning there's not a standard technique I used to solve the problem and you just need to be able to make certain observations (this blog about "forcing" by -is-this-fft- explains what I mean by "observation") and find certain invariants to solve the problem.

This isn't to say that learning algorithms is bad—I love reading cp-algorithms.com and learning new algorithms—but for the purpose of getting better at competitive programming, at least on CodeForces, practicing consistently and getting better and better at your general problem-solving abilities matters much more.

CodeForces Round #362 (Div. 2): Rating went from 1500 to 1504 (back then, default rating was 1500 instead of 0)

Codeforces Round #363 (Div. 2): Rating went from 1504 to 1536 (+36)

  • Problem A: Brute force
  • Problem B: Brute force
  • Problem C: Ad hoc reasoning and basic bitmasks (there is a dynamic programming solution, but that's not how I solved it)

Codeforces Round #553 (Div. 2): Rating went from 1540 to 1566 (+26)

Codeforces Round #570 (Div. 3): Rating went from 1566 to 1732 (+166)

Educational CodeForces Round 68: Rating went from 1732 to 1766 (+44)

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en13 English Noble_Mushtak 2023-01-30 08:29:30 731 Tiny change: 's\n- Fast fourier tra' -> 's\n- Fast Fourier tra' (published)
en12 English Noble_Mushtak 2023-01-30 08:14:01 1453
en11 English Noble_Mushtak 2023-01-30 08:06:03 3071
en10 English Noble_Mushtak 2023-01-30 07:39:04 828
en9 English Noble_Mushtak 2023-01-30 07:28:17 2247
en8 English Noble_Mushtak 2023-01-30 06:58:02 627
en7 English Noble_Mushtak 2023-01-30 06:47:44 447
en6 English Noble_Mushtak 2023-01-30 06:43:04 495 Tiny change: ' [Problem B](https://' -> ' [Problem C](https://'
en5 English Noble_Mushtak 2023-01-30 06:28:19 797
en4 English Noble_Mushtak 2023-01-30 06:20:07 554
en3 English Noble_Mushtak 2023-01-30 06:10:43 3013 Tiny change: 'Div. 2):\n- [Probl' -> 'Div. 2):\n\n- [Probl'
en2 English Noble_Mushtak 2023-01-30 05:26:48 8
en1 English Noble_Mushtak 2023-01-30 05:26:35 976 Initial revision (saved to drafts)