You are on page 1of 2

Rating 800-1000: Basics and Warm-up

Warm-up with problems in the 800-1000 rating range. Focus on fundamental concepts
and problem-solving techniques.
Data Structures (Rating 1000-1200):

Strengthen your understanding of basic data structures with problems in the 1000-
1200 rating range. Practice arrays, linked lists, stacks, and queues.
Rating 1200-1400: Dynamic Programming Introduction:

Begin solving DP problems in the 1200-1400 rating range. Start with simpler
variations and gradually move to more complex ones.
Graph Theory (Rating 1400-1600):

Introduce graph theory concepts with problems in the 1400-1600 rating range. Cover
DFS, BFS, and basic graph algorithms.
Rating 1600-1800: Intermediate Topics:

Strengthen your skills with intermediate-level problems covering data structures,


dynamic programming, and graph theory.
Rating 1800-2000: Advanced Data Structures:

Dive into problems that involve advanced data structures such as segment trees and
Fenwick trees.
Rating 2000-2200: Advanced Dynamic Programming:

Tackle more challenging DP problems, including those involving trees and complex
recurrence relations.
Rating 2200-2400: Advanced Algorithms:

Explore problems covering advanced algorithms, including more complex sorting


algorithms and advanced searching techniques.
Rating 2400-2600: Advanced Graph Theory:

Conquer problems in the 2400-2600 rating range that delve into advanced graph
theory concepts and algorithms.
Rating 2600-2800: Expert Level:

Challenge yourself with problems at the expert level, covering a wide range of
topics including number theory, geometry, and advanced data structures.
Rating 2800-3000 and Beyond: Mastering Complexity:

Focus on mastering problems that involve intricate concepts, advanced techniques,


and optimizations.

Certainly! Here's a suggested order for your practice sessions, considering a


structured approach to gradually build your skills:

Data Structures:
Basic Data Structures (arrays, linked lists, stacks, queues)
Trees (binary trees, binary search trees)
Advanced Data Structures (segment trees, Fenwick trees)
Dynamic Programming (DP):

Start with basic DP problems.


Progress to intermediate problems involving more complex variations (0/1 knapsack,
dynamic programming on trees).
Challenge yourself with advanced DP problems.
Sorting and Searching:

Basic Sorting Algorithms (bubble sort, insertion sort)


Advanced Sorting Algorithms (quick sort, merge sort)
Binary Search
Graph Theory:

Basic Graph Algorithms (DFS, BFS)


Shortest Paths (Dijkstra's algorithm, Floyd-Warshall algorithm)
Connectivity (union-find)
Greedy Algorithms:

Introduction to Greedy Algorithms


Applications of Greedy Algorithms
Number Theory:

Modular Arithmetic
Prime Factorization
Properties of Numbers
Binary Search:

Binary Search in Sorted Arrays


Binary Search for Monotonic Functions
Divide and Conquer:

Introduction to Divide and Conquer


Applications of Divide and Conquer
Mathematics:

Combinatorics
Probability
Geometry
Algebra
String Manipulation:

Basic String Operations


String Searching Algorithms
Geometry:

Basic Geometry Concepts


Advanced Geometry Problems

You might also like