O Problems

This collection contains competitive programming problems organized by algorithmic techniques and concepts.

Topics

Topic Description
Backtracking Systematic exploration of solution spaces
Bit Manipulation Bitwise operations and techniques
Divide and Conquer Breaking problems into smaller subproblems
DP Dynamic Programming across multiple sessions
Greedy Greedy algorithm strategies
Hash Map Hash-based data structure problems
Knuth-Morris-Pratt String matching algorithm
Number Theory Mathematical and number theory problems
Number Theory 2 Advanced number theory concepts
Segment Tree Range query data structure
Topological Sort DAG ordering and applications

Exams

Exam Description
Midterm Midterm examination problems
Final Term Final examination problems

Topics Overview

Algorithm Techniques

  • Backtracking: Generate all possible solutions systematically
  • Divide and Conquer: Split, solve, and combine approach
  • Dynamic Programming: Optimal substructure and overlapping subproblems
  • Greedy: Locally optimal choices for global optimum

Data Structures

  • Hash Map: O(1) average lookup and insertion
  • Segment Tree: Efficient range queries and updates

String Algorithms

  • KMP (Knuth-Morris-Pratt): Linear time pattern matching
Mathematical
  • Bit Manipulation: Binary operations and tricks
  • Number Theory: Primes, GCD, modular arithmetic

Graph Algorithms

  • Topological Sort: Ordering vertices in a DAG