Blog
Algorithms
Every BIAA article and guide on Algorithms.
Binary Search for Competitive Programming
Master binary search for competitive programming with BIAA: learn the monotonic predicate pattern, binary search on the answer, STL helpers, and how to avoid bugs.
Graph Algorithms for Competitive Programming: A Student's Roadmap
A clear roadmap to graph algorithms for competitive programming, from BFS to flow networks. BIAA shows how each maps to USACO divisions and contest skill.
Dynamic Programming Explained for Competitions
Learn dynamic programming for competitive programming with BIAA: optimal substructure, memoization vs tabulation, classic patterns, and how DP shows up in contests.
Essential Data Structures for Competitive Programming
A clear guide to the essential data structures competitive programming students need, from arrays to segment trees. BIAA maps each one to real contest skills.
Number Theory for Competitive Programming: A Student's Roadmap
A clear guide to number theory for competitive programming: GCD, primes, modular arithmetic, and inverses. Build the math toolkit BIAA students use to climb the ranks.
Prefix Sums and Difference Arrays Explained
Learn prefix sums for competitive programming and the difference array trick for fast range queries and updates. A clear, practical BIAA guide for students.
Recursion and Backtracking for Competitive Programming
Learn recursion backtracking competitive programming techniques: how they work, where they appear in contests, and how BIAA students train to master them.
Greedy Algorithms for Competitive Programming
Learn how greedy algorithms work in competitive programming, when they're correct, and how to prove it. A practical guide from BIAA for ambitious K-12 coders.
Bitmask Competitive Programming: A Practical Guide
Learn bitmask competitive programming with BIAA: bitwise tricks, subset enumeration, and bitmask DP for USACO Gold, with practical tips for students.
String Algorithms for Competitive Programming: A Practical Guide
A practical BIAA guide to string algorithms for competitive programming: hashing, KMP, Z-algorithm, tries and suffix arrays, with USACO study tips.
Two Pointers and Sliding Window Explained
Learn the two pointers sliding window pattern: how it cuts O(n²) brute force to O(n), when to use each, and how BIAA students master it for USACO and contests.
Segment Trees Explained for Competitive Programming
Learn the segment tree for competitive programming: range queries, point and range updates, and lazy propagation, explained step by step by BIAA coaches.