Getting into competitive programming can feel overwhelming. There are thousands of problems, dozens of topics, and no clear starting point. This guide gives you a structured roadmap specifically designed for Bangladeshi students targeting the BdOI and eventually the IOI.
Phase 1: Learn a Language (2-4 weeks)
Pick C++. Not Python, not Java — C++ is the standard in competitive programming for good reason: it's fast, the STL is powerful, and virtually all editorials and resources use it.
Focus on: - Basic I/O (cin/cout, fast I/O) - Control flow (if/else, loops) - Functions and recursion - Arrays and strings - STL basics: vector, pair, sort, map
Practice: Solve 30-50 easy problems on Codeforces (difficulty 800-1000).
Phase 2: Core Algorithms (4-6 weeks)
- - Sorting algorithms and when to use them
- - Binary search (on arrays and on the answer)
- - Two pointers and sliding window
- - Prefix sums
- - Basic number theory: GCD, primes, modular arithmetic
Practice: Codeforces problems rated 1000-1400. CSES Problem Set "Sorting and Searching" section.
Phase 3: Graph Theory (4-6 weeks)
- - BFS and DFS
- - Shortest paths (Dijkstra, Bellman-Ford)
- - MST (Kruskal's, Prim's)
- - Topological sort
- - Union-Find (DSU)
Practice: CSES Graph Algorithms section. Codeforces problems rated 1400-1700 tagged "graphs."
Phase 4: Dynamic Programming (6-8 weeks)
This is the most important topic for competitive programming. Take your time.
- - Classical DP (knapsack, LIS, LCS)
- - DP on grids
- - Tree DP
- - Bitmask DP
- - DP optimization
Practice: AtCoder DP Contest (all 26 problems). CSES DP section. Codeforces problems rated 1500-1900 tagged "dp."
Phase 5: Advanced Topics (ongoing)
- - Segment trees and Fenwick trees
- - String algorithms (hashing, KMP, Z-function)
- - Advanced graph algorithms (SCC, bridges, 2-SAT)
- - Computational geometry basics
- - Game theory
Recommended Online Judges
- Codeforces** — Best for regular contests and problem archive
- AtCoder** — Clean problems, excellent for learning DP
- CSES Problem Set** — Structured topic-wise problem set
- USACO Guide** — Excellent for BdOI-level problems with editorials
Consistency beats intensity. Solve 2-3 problems per day, every day, for 6 months. That's how you make the national team.