ankurvaishley / ProblemSolving-Squad

Problem Solving Squad Roadmap

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Problem solving Squad roadmap

Important topics

Level 0

  • Intro & Basics
    • Data Types
    • Variables
    • I/O
    • Conditional statement
  • Loops & Arrays
  • Strings & Functions
  • Complexity & Binary Search

Level 1

  • Ad-hoc problems
    • Freq. Array
    • Cumulative Sum
    • Two Pointers
    • Greedy
    • Sliding Windows
  • STL I [Linear Containers]
    • Vectors
    • Queues
    • Deques
    • Stacks
    • Pairs
  • STL II [Non-Linear Containers]
    • Map
    • Set
    • Priority
    • Queue & Structs
  • Bit-masking & Iterative Brute Force
  • Recursion & Recursive Brute Force

Level 2

  • Math I

    • Primes
    • Sieve
    • Factorization
    • Factorial
    • GCD & LCM
  • Math II

    • Fibonacci
    • Big-integer
    • Modular Arithmetic
    • Binary Exponentiation
  • Math III

    • Permutations & Combinations
    • Preprocessing
  • DP I

    • Intro
    • MaxRangeSum
    • KnapSack
    • CoinChange
  • DP II

    • Longest Increasing Subsequence (LIS)
    • Longest Common Subsequence (LCS)
    • Consecutive Dynamic Ranges
  • Graphs

    • Graph Traversal and Basic Algorithms
      • Graph Traversal
      • Articulation Points and Bridges
      • Bridge Tree
      • Strongly Connected Components
      • Kosaraju Algorithm
      • Biconnected Components
    • Shortest Path
      • Single-Source Shortest Path
      • All-Pairs Shortest Path
    • Minimum Spanning Tree
      • Prim's Algorithm
      • Kruskal's Algorithm
    • Special Graphs
      • Euler Tour (for Eulerian Graphs)
      • Maximum Cardinality Bipartite Matching
    • Max Flow
      • Edmonds-Karp Algorithm
      • Dinic's Algorithm
      • Tarjan's (Push-Relabel) Algorithm- Geometry
  • Strings algorithms

    • Prefix Automaton (KMP)
    • Suffix Trie
    • Suffix Array
    • Suffix Automaton
    • Aho Corasick
    • Z Algorithm
    • Manacher

Related

Dr. Mostafa Saad:

Please, check out the sheet before reading. The sheet is:

Complete and consistent roadmap for newcomers: What to solve & algorithms to learn in order

In the bottom row, there are different sheet pages such as Faq, Topics, CF-C2

CF-C1, C2 are (Codeforces Div2 C problems (or similar level from other OJs), but from easy to hard). Same for CF-D1, D2, D3

Covering most of the topics needed up to Codeforces Div2-D

Problems increase in difficulty per topic with intermediate easy/medium problems + ad-hoc problems

Speed problems to maintain speed goals
  • One can train in one of the following ways:

    • Blind-Order training style:

        Problems are distributed in sheets CF-A, CF-B, CF-C1, ....CF-D3
      
        It targets learning the knowledge/skills in a consistent and balanced way
      
        Every sheet page is on average harder than the previous sheet page
      
        This is my recommended way, though most camps/training-approaches don't use this style
      
    • Topics-Based training style:

        See the sheet page (Topics1). It has the same sheet problems (CF-A to CF-D3) ordered by category and level, around 950 problems. Also checkout Topics2 page
      
        Ideas Quality column: P5 (important), P4(very interesting), P3(interesting), P2(good), P1(ok), Empty (normal)
      
        You can train using Blind-Order, and use Topics page as a guide to skip some problems
      
        Advantage: Mastering the algorithm till solving some hard problems in a short time
      
        Disadvantage: Discovering the algorithm behind the problem is an important skill. Given that you know the topic, you lose a good space to improve this skill
      
        Disadvantage: Being in the mode of specific algorithm lets you solve many of it easier. However, when solving in real contests, your mind is not so active on the specific topic
      

About

Problem Solving Squad Roadmap