Competitive Coding

One must have basic idea and clear concepts of Data Structures and Algorithms before diving into this sport called “Competitive Coding”.
Before getting started, have a look at this site: CP-Algorithms, a one stop solution for all competitive coders. This will be very helpful at later stages of this journey.
:pushpin: Dynamic Programming
- Dynamic Programming Notes Hackerearth
- DP Tutorial involving grids
- Divide and Conquer DP
- TopCoder Tutorial on DP
- Some classical problems:
- Practice Problems:
Contests
:pushpin: String Algorithms
- String manipulation(basics)
- Z algorithm & Z algorithm II
- Manachar’s algorithm & Manacher’s algorithm II
- String Hashing
- KMP algorithm
- Rabin-Karp and KMP TopCoder
(i) HackerEarth Problemset
| ☆ | Problem Link | Finished |
|---|---|---|
| ★☆☆ | Compiler Version | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Secrete Messages! | <ul> <li> [ ] </li> </ul> |
| ★★☆ | String Queries | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Largest Lexicographical Rotation II | <ul> <li> [ ] </li> </ul> |
| ★★☆ | EasyPalindrome | <ul> <li> [ ] </li> </ul> |
| ★★★ | Statistics of strings | <ul> <li> [ ] </li> </ul> |
| ★★★ | Last Forever | <ul> <li> [ ] </li> </ul> |
(ii) HackerRank Problemset
| ☆ | Problem Link | Finished |
|---|---|---|
| ★☆☆ | Palindrome Index | <ul> <li> [ ] </li> </ul> |
| ★☆☆ | Weighted Uniform Strings | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Sherlock and Anagrams | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Bear and Steady Gene | <ul> <li> [ ] </li> </ul> |
| ★★★ | Circular Palindromes | <ul> <li> [ ] </li> </ul> |
(iii) Codeforces Problemset
| ☆ | Problem Link | Finished |
|---|---|---|
| ★★☆ | Another Problem on Strings | <ul> <li> [ ] </li> </ul> |
| ★★☆ | AB-string | <ul> <li> [ ] </li> </ul> |
| ★★★ | Prefixes and Suffixes | <ul> <li> [ ] </li> </ul> |
(iv) SPOJ Problemset
:pushpin: Trees
| ☆ | Problem Link | Finished |
|---|---|---|
| ★☆☆ | Same Tree | <ul> <li> [ ] </li> </ul> |
| ★☆☆ | Invert Binary Tree | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Binary Tree Longest Consecutive Sequence | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Most Frequent Subtree Sum | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Lowest Common Ancestor of a binary tree | <ul> <li> [ ] </li> </ul> |
| ★★☆ | N-ary Tree Level Order Traversal | <ul> <li> [ ] </li> </ul> |
| ★★★ | Sum of distances in tree | <ul> <li> [ ] </li> </ul> |
:pushpin: Graphs
- Algorithm Gym :: Graph Algorithms
- Basic Graph Theory
- :movie_camera: Breadth-First Search(MIT OCW playlist-Youtube)
- :movie_camera: Depth-First Search, Topological Sort (MIT OCW playlist-Youtube)
| ☆ | Problem Link | Finished |
|---|---|---|
| ★☆☆ | PPATH(SPOJ) | <ul> <li> [ ] </li> </ul> |
| ★☆☆ | Draughts(CodeChef) | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Distant Relatives(CodeChef | <ul> <li> [ ] </li> </ul> |
:pushpin: Shortest Path Algorithms
- Dijkstra
- Dijkstra Algorithm(CP-Algorithms)
-
:movie_camera: Dijkstra’s Algorithm Single Source Shortest Path Graph Algorithm(Youtube)
- Bellman Ford
- Bellman-Ford Algorithm(CP-Algorithms)
-
:movie_camera: Bellman-Ford Algorithm Single Source Shortest Path Graph Algorithm(Youtube)
- Floyd Warshall
- Floyd-Warshall Algorithm(CP-Algorithms)
- :movie_camera: Floyd Warshall Algorithm All Pair Shortest Path Graph Algorithm(Youtube)
| ☆ | Problem Link | Finished |
|---|---|---|
| ★★☆ | Minimum Valid Path | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Chef and Digit Jumps | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Road Decoration | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Mice and Maze | <ul> <li> [ ] </li> </ul> |
:pushpin: Union Find (Aka Disjoint Set Union/Union Find Disjoint Sets)
- :movie_camera: Union Find (PU-CS : Youtube)
- Disjoint Set Union(CP-Algorithms)
| ☆ | Problem Link | Finished |
|---|---|---|
| ★☆☆ | Marriage Problem | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Roads not only in Berland | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Lexicographically minimal string | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Consecutive Letters | <ul> <li> [ ] </li> </ul> |
:pushpin: Minimum Spanning Tree (Kruskal’s)
- :movie_camera: Kruskal’s algorithm Minimum Spanning Tree Graph Algorithm(Youtube)
- Minimum spanning tree - Kruskal with Disjoint Set Union(CP-Algorithms)
| ☆ | Problem Link | Finished |
|---|---|---|
| ★★☆ | Bytelandian Blingors Network | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Roads in HackerLand | <ul> <li> [ ] </li> </ul> |
| ★★☆ | MST Queries | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Cost | <ul> <li> [ ] </li> </ul> |
:pushpin: Binary Indexed Tree (Fenwick Tree)
- :movie_camera: Video, for better Understanding and Visualisation(Youtube)
- Blog, with Explanation, Implementation and Practice Problems(CP-Algorithms)
| ☆ | Problem Link | Finished |
|---|---|---|
| ★☆☆ | Thor | <ul> <li> [ ] </li> </ul> |
| ★☆☆ | Zeros and Ones | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Help Ashu | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Distinct Digits II | <ul> <li> [ ] </li> </ul> |
| ★★☆ | Micro and Array Function | <ul> <li> [ ] </li> </ul> |
We hope you now know the roadmap to being a professional Competitive Coder :v: