Skip to main content
Back to course
Log in
Get started
Someone wanted to learn this too, so Grasp built them a personal learning path.
Create your own
Competitive Programming
·
Module 1
Algorithm Selection, Correctness Proofs, and Stress Testing
1
Deriving Time-Complexity Targets from Input Constraints
Derive a feasible time-complexity target from input bounds and the total size across test cases.
Derive a feasible time-complexity target from input bounds and the total size across test cases.
2
Choosing Algorithm Families from Constraints and Input Structure
Use constraints and input structure to shortlist plausible algorithm families before coding.
Use constraints and input structure to shortlist plausible algorithm families before coding.
3
Necessary vs. Sufficient Conditions in Solution Criteria
Distinguish necessary conditions from sufficient conditions when deriving a solution criterion.
Distinguish necessary conditions from sufficient conditions when deriving a solution criterion.
4
Constructing Minimal Counterexamples to Disprove Algorithmic Ideas
Construct a minimal counterexample that disproves an incorrect algorithmic idea.
Construct a minimal counterexample that disproves an incorrect algorithmic idea.
5
Proving Algorithm Correctness with Invariants
State an invariant that explains why an iterative or constructive algorithm remains correct.
State an invariant that explains why an iterative or constructive algorithm remains correct.
6
Proving Recursive Algorithm Correctness by Induction
Use induction to prove the correctness of a recursive or recurrence-based algorithm.
Use induction to prove the correctness of a recursive or recurrence-based algorithm.
7
Building a Brute-Force Oracle for Small-Input Verification
Build a brute-force oracle for checking an optimized solution on small inputs.
Build a brute-force oracle for checking an optimized solution on small inputs.
8
Randomized Stress Testing for Oracle–Solution Mismatch Detection
Use randomized stress testing to isolate a mismatch between an oracle and an optimized solution.
Use randomized stress testing to isolate a mismatch between an oracle and an optimized solution.
Next module isn't ready yet,
Back to course
Previous module
Next module