Message on Whatsapp 8879355057 for DSA(OA + Interview) + Fullstack Dev Training + 1-1 Personalized Mentoring to get 10+LPA Job
2 like 0 dislike
1,354 views
by | 1,354 views

2 Answers

1 like 0 dislike

The following are the steps to help you get started with Competitive Programming.

Pick a language


2 of the best programming languages known for competitive programming are C and C++. We would recommend C++ here. Both of them take less time of execution than Python but one cannot deny how C++ STL makes your life easier.

Start with Basic Problems

Start your journey by solving basic problems like how to find a prime number, the number of factors of a number, factorial of a number, find greatest/lowest among array, insert an integer into an array, string operations using ASCII values, the sum of the digits of a number, etc. You can find a bunch of such problems on SPOJ.

Learn Data Structures and Algorithms

Data Structures and Algorithms are going to be your biggest friends if you choose to make them! Not only in your Competitive Programming journey but also in your Placement Interviews.

And it’s super fun to learn them. Once you dive into it, you’ll enjoy the essence. You’ll be amazed at the scope of DSA usage from Google’s fastest search to quickest commute in Uber, DSA plays a role everywhere!

Hey, wait! Are you practicing?

Tried HackerRankCodeChefHackerEarth? Practice is highly important to understand the types of problems. Also, practice improves your question reading skills which can help you save time. Mathematics is super fun and you’ll be amazed to know how mathematical functions can be used to find solutions to such complex scenario problems.

Why not involve your friends?

In today’s era, nobody can complain of being not aware of current technology trends. If you’re ignoring this, you’re missing out on a lot my friend!

Practice Competitive with a group of friends or a community. Most colleges now have IEEE, CodeChef Chapters in their universities which are non-profit organizations that help increase technical awareness among young students. Even though these opportunities are present in almost all colleges people usually prefer to procrastinate on this. Some students often tell - “I’ll join them next semester” or “I think maybe I can do it much better sitting in my hostel room” and later you find these guys watching Naruto in their hostel rooms. Make sure it’s not you!

Are we practicing?

Practice must never stop! Practice! Practice! Practice!

Even if you don’t get time, make it to just 5 - 7 problems a day. Learn about more algorithms like Greedy, Dynamic Programming, Backtracking, etc. And don’t forget to revise Data Structures and Algorithms regularly.

Competitions Define Us

Take it a positive way. Competitions. Yes, they do help us know where we stand. Even while you began practicing Problem Solving on HackerRank there would have already been over a million people and you’ve practiced daily to get to your favorite badge. True?

Dedication

Yes, dedication is important because you’re investing a large part of your time here! You have to get serious about your Competitive routine. You have to constantly analyze the problems which you couldn’t solve earlier or the ones which were taking a long time. Don’t get disheartened if you’re not getting a solution. Look out for help. Again solve until you become perfect. Soon you’ll realize it doesn’t take long enough to get to a Star Ranking on CodeChef.

by
2 like 0 dislike

And here we go:-

1)Best place to study theory for competitive programming:-

  1. Main Page — Competitive Programming Algorithms
  2. Notes on HackerEarth
  3. Blogs of Codeforces(Please use Google)
  4. Competitive Programming: From Beginner to Expert (They explain things in such a friendly manner,I love those guys)
  5. GeeksforGeeks | A computer science portal for geeks(This guy will save you the most)

Now,lets go topic-wise:-

C++
C++ Tricks by Swift
C++ STL: map and set by adamant
C++ STL: Policy based data structures by adamant
Competitive C++ Manifesto: A Style Guide by Swift
Catching silly mistakes with GCC by andreyv

Data Structures
Algorithm Gym :: Data Structures by DarthPrince
Everything about Segment Trees by DarthPrince
Efficient and easy Segtree by Al.Cash
A simple introduction to “Segment tree beats” by jiry_2
Sack(DSU on trees) by Arpa
SQRT Tree by gepardo

Math
Invariants and monovariants by TooNewbie
Mobius Inversion by Nisiyama_Suzune
Dirichlet convolution by Nisiyama_Suzune
Fast convolution for 64-bit integers by quasisphere
Tutorial for FFT/NTT Part 1 by sidhant
Tutorial for FFT/NTT Part 2 by sidhant
On Fast Fourier Transform by adamant
Extended Eratosthenes Sieve by lucyanna2018
Burnside Lemma by flash_7

Geometry
Quaternion algebra and geometry by adamant
Slope Trick by zscoder
Nearest Neighbor Search by P_Nyagolov
Convex Hull trick and Li chao tree by adamant
Geometry: 2D points and lines by Al.Cash
Geometry: Polygon algorithms by Al.Cash
[Tutorial] Convex Hull Trick — Geometry being useful by meooow

Graphs
0–1 BFS by dumbass
2-SAT by Swift
Algorithm Gym :: Graph Algorithms by DarthPrince
On Euler tour trees by ifsmirnov
‘Meet in the middle’ with shortest path problems of unweighted graph by liv1n9
Vertex cover and 2-SAT by irkstepanov
Add edges to a digraph to make it strongly connected by chaotic_iak

Others
Parallel Binary Search by dumbass
General ideas and tricks by adamant
Some Tutorials — Or attempts at it :P by rajarshi_basu
Tutorial On Tof (Ternary Search) by Mahdi_Jfri

by Expert (108,690 points)