> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hnuicpc.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Training Roadmap

> The complete path from beginner to ICPC finalist.

## The HNU ICPC Path

Our training program is structured into levels, each focusing on a specific set of skills and algorithms. Follow this path to build a world-class foundation in competitive programming.

<AccordionGroup>
  <Accordion title="Level 0 Training" icon="seedling">
    <ResponseField name="Info" icon="bullhorn">
      * It covers foundational topics to build a strong base in programming and problem-solving.
      * This level is an introductory level designed for beginners.
    </ResponseField>

    <ResponseField name="Content" icon="zero">
      * **Data Types**
      * **Conditions & Loops**
      * **Arrays & Strings**
      * **Functions & Complexity Analysis**
      * **STLs**
        * **Part 1**: (Vector, Pair, Deque, Queue, Priority Queue, Stack)
        * **Part 2**: (Set, Multiset, Ordered Set, Unordered Set, Map, Unordered map)
      * **Static Range Queries**
        * Frequency Array
        * (1D/2D) Prefix Sum
        * (1D/2D) Partial Sum
    </ResponseField>

    [Start Level 0 Tutorials](/level-0/overview)
  </Accordion>

  <Accordion title="Level 1 Training" icon="gear">
    <ResponseField name="Info" icon="bullhorn">
      * This level is an intermediate level designed for those with basic programming knowledge, aiming to deepen their problem-solving skills.
      * It covers advanced topics to enhance algorithmic thinking and efficiency.
    </ResponseField>

    <ResponseField name="Content" icon="one">
      * **Two Pointers**
      * **Binary Search**
      * **Complete Search**
        * Recursion and Backtracking
        * (Iterative) using Bitmasks
      * **Counting Principles**
        * Addition, Multiplication, nCr, nPr, Inclusion-Exclusion
      * **Number Theory**
        * **Part 1**: Divisors, Prime Factorization, Sieve
        * **Part 2**: Modular Arithmetic, Binary Power, Mod inverse, GCD, LCM
      * **Intro to Graphs**
        * Representation & Traversal (BFS/DFS)
    </ResponseField>
  </Accordion>

  <Accordion title="Level 2 Training" icon="bolt">
    <ResponseField name="Info" icon="bullhorn">
      * This level is an advanced level designed for those with a solid foundation in programming and competitive programming, aiming to master complex algorithms and data structures.
      * It covers sophisticated topics to tackle challenging problems.
    </ResponseField>

    <ResponseField name="Content" icon="two">
      * **Strings**
        * Trie (Prefix Tree)
        * String Hashing
      * **Graphs**
        * SSSP (Dijkstra)
        * DSU with Rollbacks and MST
        * Lowest Common Ancestor (LCA)
      * **Dynamic Programming**
        * Classical DP (0/1 Knapsack, LCS, LIS, CC, Ranges, Building Output)
        * Digits and DP with masks
      * **Range Queries**
        * Sparse Table
        * Segment Tree (Point/Range updates)
        * Lazy Segment Tree
    </ResponseField>
  </Accordion>

  <Accordion title="Level 3 Training" icon="crown">
    <ResponseField name="Info" icon="bullhorn">
      * This level is an expert level designed for advanced competitive programmers with a strong grasp of algorithms and data structures, aiming to tackle highly complex problems.
      * It covers specialized and cutting-edge topics.
    </ResponseField>

    <ResponseField name="Content" icon="three">
      * **Strings**
        * KMP & DP With KMP
        * Suffix Array
        * Aho Corasick
      * **Graphs**
        * APSP (Floyd-Warshall) & Bellman
        * Euler Walk of tree / Mo on trees
        * Small To Large merging / DSU on Trees (Sack)
        * Heavy Light Decomposition
      * **Geometry**
      * **Dynamic Programming**
        * Iterative DP and DP With DS
        * Non-classical DP
      * **Range Queries**
        * Fenwick tree (1D/2D)
        * Sqrt-decomposition and MO's algorithm
        * Persistent Segment Tree
      * **Matrix Power**
    </ResponseField>
  </Accordion>
</AccordionGroup>

***

## How to use this roadmap?

1. **Be Consistent**: Solving one problem a day is better than ten problems once a week.
2. **Follow the Path**: Don't skip levels. A strong foundation is key to advanced topics.
3. **Practice, Practice, Practice**: Knowledge without implementation is useless. All links to sheets and contests are available in each level's overview.
