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