Are you struggling to solve competitive programming problems? Or do you want to start competitive programming?. Then here in this post of the terminal stack, you will get all your doubts clear.
The doubt usually beginners get while doing Competitive programming is why should they do competitive programming? Or what are the benefits we will get after doing this? So, here are some of the benefits of Competitive programming
What are the benefits of competitive programming?
- It will help you to improve your Problem-Solving skills.
- It will also be beneficial for you in the online coding round of placements.
- If you are good at competitive programming, it will help you to get placement or internships
- If you want a referral, you can show your skills there.
What are the Prerequisites to start competitive programming?
- Also if you have done basic data structure and algorithm in that language
Topics you must know before starting CP-
- Number Theory
- Binary Search
- Greedy Algorithm
- Recursion and Backtracking
- Segment Tree
- BIT ( Binary Index Tree)
- Dynamic Programming
- Graph Algorithms
- Game Theory
- Geometric Algorithms
- Fast Fourier Transform
- Heavy Light Decomposition [HLD]
Resources to learn competitive programming –
Now you must be thinking about where we can learn competitive programming. So here I have listed some of the resources to learn competitive programming –
- Book – Guide to CP [ All major topics covered]
- Website – CP algorithm ( this site has all the topics explained in an order )
- To practice the problems refer to this site CSES Problem Set
What strategy do we need to follow to become good at CP
The most important part of the strategy is to give the contest. You have to do everything parallel like you have to do the concepts then practice the problems and give the contest.
So, which sites to refer to for the contest as there are lots of sites like CodeForces, CodeChef, CodeSignal, Hackerrank, etc. I would prefer to start practicing through Codeforces and if you reach till intermediate level then you can explore other sites as well for the contest. On Codeforces there are 6-7 monthly contests of 2 hours each so it is best for beginners. There is one more benefit of using Codeforces that is there we have the option of Virtual Contest. Here you can practice the live contest or if any contest is missed by you then you can practice here in the virtual contest. Then another beneficial thing about Codeforces is to use the a2oj ladder. It gives you the problem to practice with ratings. You can select which topics you want under which rating.
Tips for CP-
- For getting the accuracy, you should practice as many problems as you can
- Try to Dry-Run your code before submitting this also helps a lot
- You should note down your mistakes after the contest and improve yourself next time
- To improve speed, you should do practice and try to read the problem fast
- Practicing Virtual contest also helps to gain speed during the actual contest
- You can also use code snippets
- Try to make friends for doing CP which is called Pair Programming
- Upsolve – try to solve those problems which you have missed while giving a contest
- Practice the problems as Live contest
If you want to become a Candidate Master on CodeForces, you should follow all the steps I have mentioned above. To achieve anything, you will need a strategy; the same is for competitive programming. If you follow the strategy given above you will become good in CP. You have to give 3-4 hours per day for practicing the problems. Consistency is the key to success.