Hey Community,

Below, you will find a list of simple CP tools which I use on a regular basis for self analysis. I would love to know about any other active CP Analyzer tools (for CF, Leetcode, Codechef, GFG, etc.), learning resources and browser extensions.

**Websites**

**Extensions**

**Javascript Extension to auto-commit your leetcode, GFG & atcoder solutions to GitHub**

If any other useful tools are missing please try to add those in the comment section. Hope my blog is helpful to this community If you love it, then do share with your CP friends. Happy Coding :) Thank you!

**Resources**

**Practice (Easy to Difficult Website Ranking)**

Leetcode — for Interviews

**BASICS & DSA**

Object Oriented Programming

Time && Space Complexity

Conditions & Loops

Arrays

- Linear Arrays

- MEX

- XOR

Strings

- Subsets

Math

- Modular Arithmetic

- Number Theory

- Combinations

- Determinants

- Probability

- Geometry

- Primes

- GCD

Linked List

Stacks and Queues

- Priority Queues

Min Max Heaps

Hashing, Sets, Multisets

Trees

- Binary Search Tree (BST)

- Tries, Segment Tree, Fenwick Tree (or Binary Indexed Tree)

- Minimum Spanning Tree, Suffix Tree

- Disjoint Set (or Union-Find)

- Trie

Graphs

- Simple Nodes (numbers)

- Complex Nodes (objects)

**POPULAR CONCEPTS**

Arrays:

- Bit Masking

- Prefix Sum — Precomputations

- Sliding Window — Two pointers

- Kadane's Algorithm

- Josephus Algorithm

- Square Root Decomposition

- MO Algorithm

String

- Rabin-Karp Algorithm

- Manacher's Algorithm

- Z algorithm

Greedy Approach, Bruteforce

- Recursion

- Backtracking

Optimization

- Memoization

- Dynamic Programming

- Binary Search

- Divide and Conquer

Math

- Binary hyperparameter search

- Logarithmic Exponentiation

- Chinese Remainder Theorem

- Sprague-Grundy theorem

- Convex Hull Construction

- Stable marriage problem

- Fast-Fourier Transform

- Sieve of Eratosthenes

- Binary Exponentiation

- Euclidean Algorithm

- Sweep Line Algorithm

- Gaussian Elimination

- Manhattan Distance

- Catalan Numbers

- Pigeonhole

Graph

- Breadth First Search M1

- Depth First Search

- Flood Fill

- Shortest Path

- Dijkstra Algorithm

- Floyd Warshall Algorithm

- Bellman Ford Algorithm

- Prims Algorithm

- Krushal Algorithm

- Topological Sort

- Lowest Common Ancestor

- Euler Tour of Tree

- Bipartite Graph

- Strongly Connected Component

- Heavy-light Decomposition

**Feel Free to mention below in the comments, if any important topic is missing in this list (no need to spread hatred comments instead). I hope my blog reaches the right people who are in need of help. I never had a good guidance. At least you all should.**

**Thank you. Happy Coding :)**

Here is my favourite one: https://chrome.google.com/webstore/detail/upsolve-tracker/gadhgehadcnbmhjkpnjbhjhdbohdokpj?hl=en

You can add problem from any website in ToDo list and solve later.

This is hilarious

Also, "Pigeonhole" is not an algorithm, and neither is "Maximizing Problems" (unless you mean something like Simplex algorithm), and I am not sure how important "Determinants" is. Important algorithms/formulas like CRT and a ton of others are missing.

To be honest, I suggest you to just delete the whole "Important Concepts/Algorithms" section to avoid misguiding others. Thank you.

I don't think pupils need to know Heavy-light Decomp, but I was suggest starting small then expanding.

If you are newbie or green coder, even if your blog is good people will downvote, but for a red coder even the motivational stuff gets hundreds of likes.

you're 100% correct on this one , but saying that you need to know OOP for Cp does not make any sense , never seen any red coder saying you need oop or data structure for (newbies or pupils or even cyans ) but rather they always talk about fast solving and math and binary search , that's all

Focus on the rest