cp start

  Competitive programming can be a challenging and rewarding pursuit for those who enjoy problem-solving and coding!

 

 Here is a roadmap to help you get started:


(1) Learn a programming language.


(i) C++ (https://rb.gy/qozyb9).

(ii) Java (https://rb.gy/kndsgg).

(iii) Python (https://rb.gy/zqzyse). 

 Learn any of the above langaurages. (C++ Recommended)


(2) If C++ is chosen, learn the STL library and practice some questions. [Refer GFG (https://rb.gy/2m5ye4)].


(3) If Java is chosen, learn the Collections library and practice some questions.


(4) Solve some basic problems (at least 5-10 from each) from the following topics:


 (i) Data Types (https://rb.gy/w0hlu6). 

 (ii) Loops (https://rb.gy/ulhahs).

 (iii) Arrays (https://rb.gy/uswexq).

 (iv) Strings (https://rb.gy/jg8m8z).

 (v) Functions (https://rb.gy/6f6cmn). 

 (vi)  Maths & Geometry (https://rb.gy/n1z2kw

 (vii) Recursion (https://rb.gy/ogu7ca)

 (viii) General (https://rb.gy/q9z5mc)

 (ix) General (https://rb.gy/lcanu4)

 (x) General (https://rb.gy/b7eggz)|


(5) Follow any of the following platforms and start practicing actual CP questions. 

(i) Codeforces (https://codeforces.com/) [Recommended]


It is a Russian online judge. Solve problems from the Problem Set(https://codeforces.com/problemset). You can sort problems by difficulty/topics to practice efficiently.

Tips:

(a) Sort problems by the number of submissions at the beginning and keep the difficulty as 800.


(b) Participate in contests (at the beginning can try Div3 and Div4s) and upsolve the problems.


(ii) Atcoder (https://atcoder.jp/) [Recommended]


Giving Atcoder contests is the best way to increase speed and also practice implementation-type problems.

Atcoder Beginner Contests are good for beginners try competing in it.

Try giving Past Contests (https://atcoder.jp/contests/archive).


(iii) CodeChef (https://codechef.com/)


CodeChef Starters are good for beginners try competing in it.

Upsolve and Practice the problems.


(6) Study the further topics (from YouTube / GFG / CP Algorithms):


1. Binary Search ( https://rb.gy/brjrp6,  https://rb.gy/5bwfs8)

2. Bit Manipulation (https://rb.gy/q2shqj)

3. 2-Pointers (https://rb.gy/xjtqj6)

4. Greedy and Sorting (https://rb.gy/g5muuj)

5. Number Theory Basics (https://rb.gy/85dtt0)


(7) Practice a few questions (20-25) on each topic from the above platforms.


Try giving virtual contests on Codeforces.


Div-2: Try to solve 2-3 questions (till C).

Div-3: Try to solve 4-5 questions (till E).

Div-4: Try to solve 5-6 questions (till F).


(8) Study the further advanced topics (from YouTube / GFG / Cp Algorithms):


1. Number Theory Advanced ()

2. Combinatorics ()

3. Trees and Graphs (https://rb.gy/ubri0q)

4. Disjoint Set Union (https://rb.gy/l7lpslhttps://rb.gy/60bkpi) |

5. Dynamic Programming (https://rb.gy/jvf76i)

6. Segment Tree (https://rb.gy/obdeho)

7. String Matching and Processing (https://rb.gy/fxxitmhttps://rb.gy/914rvi)

8. Sparse Table (RMQ) (https://rb.gy/xngkerhttps://rb.gy/31rsa9)




(9) Topics to be covered:


(a) Number Theory Advanced:


1. Inverse Modulo (https://rb.gy/wgafwd)

2. Euler Totient Function (https://rb.gy/wgafwd)

3. Extended Euclidian Algorithm (https://rb.gy/hawlyq)


(b) Combinatorics:


1. Basics (https://rb.gy/by3nyy)

2. Inclusion/Exclusion (https://rb.gy/z9rz07)

3. Catalan Number (https://rb.gy/kmey9e)


(c) Trees:


1. Depth-first Search (https://rb.gy/lsayzt)

2. Diameter of a Tree (https://rb.gy/cikkgt

3. Breadth-first Search (https://rb.gy/ogmak5)

4. LCA (https://rb.gy/spaedm)








Comments