mostafa.saad.fci's blog

By mostafa.saad.fci, history, 16 months ago, In English,

I used to encourage newcomers in our community to train using this sheet to avoid random training. By the end of the sheet, one will be very good up to Div2-D. It has been refined several times based on the received feedback.

Sheet link

Please, check out the sheet before reading. The sheet is

  • Complete and consistent roadmap for newcomers: What to solve & algorithms to learn in order

  • In the bottom row, there are different sheet pages such as Faq, Topics, CF-C2

  • CF-C1, C2 are (Codeforces Div2 C problems (or similar level from other OJs), but from easy to hard). Same for CF-D1, D2, D3

  • Covering most of the topics needed up to Codeforces Div2-D

  • Problems increase in difficulty per topic with intermediate easy/medium problems + ad-hoc problems

  • Speed problems to maintain speed goals

One can train in one of the following ways:

A) Blind-Order training style

  • Problems are distributed in sheets CF-A, CF-B, CF-C1, ....CF-D3

  • It targets learning the knowledge/skills in a consistent and balanced way

  • Every sheet page is on average harder than the previous sheet page

  • This is my recommended way, though most camps/training-approaches don't use this style

B) Topics-Based training style

  • See the sheet page (Topics1). It has the same sheet problems (CF-A to CF-D3) ordered by category and level, around 950 problems. Also checkout Topics2 page

  • Ideas Quality column: P5 (important), P4(very interesting), P3(interesting), P2(good), P1(ok), Empty (normal)

  • You can train using Blind-Order, and use Topics page as a guide to skip some problems

  • Advantage: Mastering the algorithm till solving some hard problems in a short time

  • Disadvantage: Discovering the algorithm behind the problem is an important skill. Given that you know the topic, you lose a good space to improve this skill

  • Disadvantage: Being in the mode of specific algorithm lets you solve many of it easier. However, when solving in real contests, your mind is not so active on the specific topic

  • Vote: I like it
  • +76
  • Vote: I do not like it

16 months ago, # |
Rev. 2   Vote: I like it +60 Vote: I do not like it

it would be nice to have a training roadmap for oldcomers like me

16 months ago, # |
  Vote: I like it +1 Vote: I do not like it

It would be awesome if you could add some English tutorials. Still, your sheet is great. Thank you. :)

15 months ago, # |
  Vote: I like it +3 Vote: I do not like it

Thanks for your hard work Mostafa!

I just wanted to ask something and please do not take it the wrong way. I am considering of following your training roadmap, but this is a big commitment, so I would like to make sure it's a good roadmap. For me, it seems weird that you have only taken part in 9 contests and your score is close to 1600, but still proclaim to have the roadmap that can make you able to solve Div2-D problems. For this I would like to ask, is there something more you have been working on (are you in other platforms with a better rating or something)?

I know you don't have to convince me that your roadmap is good or that it works. And I do appreciate all the effort and work you put on it.

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

    still proclaim to have the roadmap that can make you able to solve Div2-D problems

    I think that it may be because he has successfully trained some people to that level (using that roadmap).

  • »
    15 months ago, # ^ |
      Vote: I like it +3 Vote: I do not like it
    • I am an old guy. In our days UVA and Topcoder were the main training platforms for me. Before stopping CP, Codeforces was launched, that is why I don't have competitions history

    • There are a lot of good people who will have low rate. High rate in contests is function in several factors, such as proper handling for online contests pressure (e.g. a lot of people think how others will think about their rate changes), accuracy (getting problem AC after how many submissions), skills (which level you can solve/algorithms you know) and finally and more importantly speed. In Div2, there are lot of people who can solve e.g. Div2-E after the contest, but not fast enough to get in the contest. Similarly for Div1-D guys. The assumption low rate => low skills is wrong.

    • I guess I always had troubles in online contests, but I was a very good team player, such as ICPC.

    • You can some about my background from here.

7 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

what should be the recommended way for beginning with competitive programming

Blind order or Topics based