🎓How I Study AIHISA
📖Read
📄Papers📰Blogs🎬Courses
💡Learn
🛤️Paths📚Topics💡Concepts🎴Shorts
🎯Practice
📝Daily Log🎯Prompts🧠Review
SearchSettings
How I Study AI - Learn AI Papers & Lectures the Easy Way

Concepts532

Groups

📐Linear Algebra15📈Calculus & Differentiation10🎯Optimization14🎲Probability Theory12📊Statistics for ML9📡Information Theory10🔺Convex Optimization7🔢Numerical Methods6🕸Graph Theory for Deep Learning6🔵Topology for ML5🌐Differential Geometry6∞Measure Theory & Functional Analysis6🎰Random Matrix Theory5🌊Fourier Analysis & Signal Processing9🎰Sampling & Monte Carlo Methods10🧠Deep Learning Theory12🛡️Regularization Theory11👁️Attention & Transformer Theory10🎨Generative Model Theory11🔮Representation Learning10🎮Reinforcement Learning Mathematics9🔄Variational Methods8📉Loss Functions & Objectives10⏱️Sequence & Temporal Models8💎Geometric Deep Learning8

Category

🔷All∑Math⚙️Algo🗂️DS📚Theory

Level

AllBeginnerIntermediateAdvanced
⚙️AlgorithmIntermediate

Problem Classification Patterns

Many competitive programming problems map to a small set of classic patterns; recognizing keywords and constraints lets you pick the right tool fast.

#problem classification#binary search on answer#two pointers+12
⚙️AlgorithmIntermediate

Proof Techniques for Greedy Algorithms

Greedy algorithm correctness is usually proved with patterns like exchange argument, stays-ahead, structural arguments, cut-and-paste, and contradiction.

1718192021
#greedy algorithms
#exchange argument
#stays ahead
+12
⚙️AlgorithmIntermediate

Complexity Analysis Quick Reference

Use an operation budget of about 10^8 simple operations per second on typical online judges; always multiply by the time limit and number of test files if known.

#time complexity#competitive programming#big-o+12
🗂️Data StructureAdvanced

Sqrt Tree

A sqrt tree is a layered block-decomposition data structure that answers range queries in O(1) time after O(n \log \log n) preprocessing.

#sqrt tree#range query#associative operation+11
⚙️AlgorithmIntermediate

Modular Arithmetic Pitfalls

Modular arithmetic is about working with remainders, but programming languages often return negative remainders, so always normalize with (a % MOD + MOD) % MOD.

#modular arithmetic#modular inverse#fermats little theorem+12
⚙️AlgorithmIntermediate

Debugging Strategies for CP

Systematic debugging beats guesswork: always re-read the statement, re-check constraints, and verify the output format before touching code.

#competitive programming#debugging#stress testing+12
⚙️AlgorithmIntermediate

Fast I/O and Optimization Tricks

Fast I/O reduces overhead from C and C++ stream synchronization and avoids unnecessary flushes, which can cut runtime by multiples on large inputs.

#fast io#iostream synchronization#cin.tie+12
⚙️AlgorithmIntermediate

Pigeonhole Principle Applications

The Pigeonhole Principle says if you put more items than boxes, at least one box must contain two or more items; this simple idea powers many algorithmic guarantees.

#pigeonhole principle#dirichlet principle#cycle detection+11
⚙️AlgorithmIntermediate

Overflow Prevention Techniques

Integer overflow happens when a computed value exceeds the range of its type; in C++ this silently wraps for unsigned and is undefined for signed, so prevention is crucial.

#overflow prevention#long long#__int128+11
⚙️AlgorithmIntermediate

Small-to-Large Principle

Small-to-large means always merge the smaller container into the larger one to keep total work low.

#small-to-large#sack technique#dsu on tree+11
⚙️AlgorithmIntermediate

Common Edge Cases Checklist

Most wrong answers in competitive programming come from unhandled boundary conditions rather than core logic mistakes.

#edge cases checklist#competitive programming wa#boundary conditions+9
⚙️AlgorithmIntermediate

Double Counting

Double counting is the strategy of counting the same quantity in two different ways to derive an equality or an efficient algorithm.

#double counting#contribution technique#handshake lemma+12