sahilbansal17/Get_Better_at_CP_in_2_Months

This contains the curriculum that I will follow to get better at Competitive Programming in 2 months.

1,087

35 commits

updated Jan 2, 2025

See the code

README

Get_Better_CP_in_2_Months

Join us on X community: https://x.com/i/communities/1873085009294410088

Month 1

Week 1

Dynamic Programming

Contests


Week 2

Trees & Graphs

Trees

☆Problem LinkFinished
★☆☆Diameter of a Binary Tree
  • [ ]
★☆☆Path Sum
  • [ ]
★★☆K-th smallest element in a BST
  • [ ]
★★☆Find duplicate subtrees
  • [ ]
★★☆Lowest Common Ancestor of a binary tree
  • [ ]
★★★Sum of distances in tree
  • [ ]

Graphs

BFS and DFS

Strongly Connected Components

Biconnected Components, Shortest Path and MST

Reading Material

Problems: Biconnected Components

Problems: Shortest Path

Problems: Minimum Spanning Tree

Contests



Week 3

String Algorithms

  1. Reading material

  1. Problems on HackerEarth

☆Problem LinkFinished
★★☆Find the substrings
  • [ ]
★★☆The Cheapest Palindrome
  • [ ]
★★☆Largest Lexicographical Rotation II
  • [ ]
★★☆Monk and Monster
  • [ ]
★★★Prefix Number
  • [ ]
★★★Last Forever
  • [ ]
  1. Problems on HackerRank

☆Problem LinkFinished
★☆☆Sherlock and the Valid String
  • [ ]
★☆☆Highest Value Palindrome
  • [ ]
★★☆Sherlock and Anagrams
  • [ ]
★★☆Common Child
  • [ ]
★★★Build a Palindrome
  • [ ]
  1. Problems on Codeforces

☆Problem LinkFinished
★☆☆Petya and Exam
  • [ ]
★★☆Password
  • [ ]
★★★Prefixes and Suffixes
  • [ ]
  1. Problems on Codechef

  1. Problems on SPOJ


Week 4

Week 4: Practice Contest


Month 2

Week 5

Data Structures

Sparse Table

  1. Reading Material

  1. Problems

Disjoint Set Union

  1. Reading Material

  1. Problems


Week 6

Square Root Decomposition

  1. Reading Material

  1. Problems


Week 7

Segment Tree

  1. Reading Material

  1. Problems


Week 8

Week 8

Fenwick Tree

  1. Reading Material

  1. Problems


Why use this list?

Since getting better at competitive programming takes a lot of effort, you need to keep practicing a lot of problems. This list will keep you focussed and you will have a target with you that you need to finish atleast these many problems before moving on. It can help you organize your practice.


How to use this list?

The Github markdown's task list feature is used to check progress.

Create a new branch so that you can check items like this, just put a x in the brackets: [x]

  • One time steps:
  1. Fork this repository.

  2. Clone the forked repository.

    git clone https://github.com/your_user_name/Get_Better_at_CP_in_2_Months.git

  3. Create a new branch for tracking your progress. Let's name this your_user_name

    git checkout -b your_user_name

  4. Add remote

    git remote add your_user_name https://github.com/your_user_name/Get_Better_at_CP_in_2_Months.git

  • Marking tasks as completed and pushing to your branch:

    git add .
    git commit -m "Completed tasks x and y"
    git rebase your_user_name/master
    git push --force
    
  • Keeping your fork's list updated with the changes made here:

    git remote add upstream https://github.com/sahilbansal17/Get_Better_at_CP_in_2_Months.git
    git checkout master
    git pull upstream master
    git push your_user_name master
    

Refer to this for understanding more about Fork and PR workflow.


algorithm
algorithm-challenges
algorithm-competitions
algorithm-library
algorithms
algorithms-and-data-structures
algorithms-datastructures
algorithms-implemented
competitive-coding
competitive-programming
competitiveprogramming
competitive-programming-algorithms
competitive-programming-contests
competitive-programming-reference
competitive-sites
data-structures

sahilbansal17/Get_Better_at_CP_in_2_Months

This contains the curriculum that I will follow to get better at Competitive Programming in 2 months.

1,087

35 commits

updated Jan 2, 2025

See the code

README

Get_Better_CP_in_2_Months

Join us on X community: https://x.com/i/communities/1873085009294410088

Month 1

Week 1

Dynamic Programming

Contests


Week 2

Trees & Graphs

Trees

☆Problem LinkFinished
★☆☆Diameter of a Binary Tree
  • [ ]
★☆☆Path Sum
  • [ ]
★★☆K-th smallest element in a BST
  • [ ]
★★☆Find duplicate subtrees
  • [ ]
★★☆Lowest Common Ancestor of a binary tree
  • [ ]
★★★Sum of distances in tree
  • [ ]

Graphs

BFS and DFS

Strongly Connected Components

Biconnected Components, Shortest Path and MST

Reading Material

Problems: Biconnected Components

Problems: Shortest Path

Problems: Minimum Spanning Tree

Contests



Week 3

String Algorithms

  1. Reading material

  1. Problems on HackerEarth

☆Problem LinkFinished
★★☆Find the substrings
  • [ ]
★★☆The Cheapest Palindrome
  • [ ]
★★☆Largest Lexicographical Rotation II
  • [ ]
★★☆Monk and Monster
  • [ ]
★★★Prefix Number
  • [ ]
★★★Last Forever
  • [ ]
  1. Problems on HackerRank

☆Problem LinkFinished
★☆☆Sherlock and the Valid String
  • [ ]
★☆☆Highest Value Palindrome
  • [ ]
★★☆Sherlock and Anagrams
  • [ ]
★★☆Common Child
  • [ ]
★★★Build a Palindrome
  • [ ]
  1. Problems on Codeforces

☆Problem LinkFinished
★☆☆Petya and Exam
  • [ ]
★★☆Password
  • [ ]
★★★Prefixes and Suffixes
  • [ ]
  1. Problems on Codechef

  1. Problems on SPOJ


Week 4

Week 4: Practice Contest


Month 2

Week 5

Data Structures

Sparse Table

  1. Reading Material

  1. Problems

Disjoint Set Union

  1. Reading Material

  1. Problems


Week 6

Square Root Decomposition

  1. Reading Material

  1. Problems


Week 7

Segment Tree

  1. Reading Material

  1. Problems


Week 8

Week 8

Fenwick Tree

  1. Reading Material

  1. Problems


Why use this list?

Since getting better at competitive programming takes a lot of effort, you need to keep practicing a lot of problems. This list will keep you focussed and you will have a target with you that you need to finish atleast these many problems before moving on. It can help you organize your practice.


How to use this list?

The Github markdown's task list feature is used to check progress.

Create a new branch so that you can check items like this, just put a x in the brackets: [x]

  • One time steps:
  1. Fork this repository.

  2. Clone the forked repository.

    git clone https://github.com/your_user_name/Get_Better_at_CP_in_2_Months.git

  3. Create a new branch for tracking your progress. Let's name this your_user_name

    git checkout -b your_user_name

  4. Add remote

    git remote add your_user_name https://github.com/your_user_name/Get_Better_at_CP_in_2_Months.git

  • Marking tasks as completed and pushing to your branch:

    git add .
    git commit -m "Completed tasks x and y"
    git rebase your_user_name/master
    git push --force
    
  • Keeping your fork's list updated with the changes made here:

    git remote add upstream https://github.com/sahilbansal17/Get_Better_at_CP_in_2_Months.git
    git checkout master
    git pull upstream master
    git push your_user_name master
    

Refer to this for understanding more about Fork and PR workflow.


algorithm
algorithm-challenges
algorithm-competitions
algorithm-library
algorithms
algorithms-and-data-structures
algorithms-datastructures
algorithms-implemented
competitive-coding
competitive-programming
competitiveprogramming
competitive-programming-algorithms
competitive-programming-contests
competitive-programming-reference
competitive-sites
data-structures

Significant stargazers

jeffin sam

105 followers · starred Apr 2020

Anish Aggarwal

60 followers · starred Jun 2019

Anshuman Maurya

65 followers · starred Jan 2022

Arne Wouters

27 followers · starred Jul 2021