\begin{theindex} \item 2SAT problem, \hyperpage{160} \item 2SUM problem, \hyperpage{78} \item 3SAT problem, \hyperpage{162} \item 3SUM problem, \hyperpage{79} \indexspace \item adjacency list, \hyperpage{113} \item adjacency matrix, \hyperpage{114} \item alphabet, \hyperpage{243} \item amortized analysis, \hyperpage{77} \item ancestor, \hyperpage{163} \item and operation, \hyperpage{96} \item Andrew's algorithm, \hyperpage{279} \item antichain, \hyperpage{193} \item arithmetic progression, \hyperpage{10} \indexspace \item backtracking, \hyperpage{50} \item Bellman–Ford algorithm, \hyperpage{123} \item binary code, \hyperpage{62} \item binary indexed tree, \hyperpage{86} \item binary search, \hyperpage{31} \item binary tree, \hyperpage{139} \item Binet's formula, \hyperpage{14} \item binomial coefficient, \hyperpage{208} \item binomial distribution, \hyperpage{230} \item bipartite graph, \hyperpage{112}, \hyperpage{122} \item birthday paradox, \hyperpage{247} \item bit representation, \hyperpage{95} \item bit shift, \hyperpage{97} \item bitset, \hyperpage{41} \item border, \hyperpage{244} \item breadth-first search, \hyperpage{119} \item bubble sort, \hyperpage{25} \item Burnside's lemma, \hyperpage{214} \indexspace \item Catalan number, \hyperpage{210} \item Cayley's formula, \hyperpage{215} \item child, \hyperpage{133} \item Chinese remainder theorem, \hyperpage{205} \item closest pair, \hyperpage{277} \item codeword, \hyperpage{62} \item cofactor, \hyperpage{219} \item collision, \hyperpage{246} \item coloring, \hyperpage{112}, \hyperpage{233} \item combinatorics, \hyperpage{207} \item comparison function, \hyperpage{31} \item comparison operator, \hyperpage{30} \item complement, \hyperpage{12} \item complete graph, \hyperpage{111} \item \texttt{complex}, \hyperpage{266} \item complex number, \hyperpage{266} \item complexity classes, \hyperpage{20} \item component, \hyperpage{110} \item component graph, \hyperpage{157} \item conditional probability, \hyperpage{227} \item conjuction, \hyperpage{13} \item connected graph, \hyperpage{110}, \hyperpage{121} \item constant factor, \hyperpage{21} \item constant-time algorithm, \hyperpage{20} \item coprime, \hyperpage{201} \item counting sort, \hyperpage{28} \item cross product, \hyperpage{268} \item cubic algorithm, \hyperpage{20} \item cut, \hyperpage{182} \item cycle, \hyperpage{109}, \hyperpage{121}, \hyperpage{149}, \hyperpage{155} \item cycle detection, \hyperpage{155} \indexspace \item data compression, \hyperpage{62} \item data structure, \hyperpage{35} \item De Bruijn sequence, \hyperpage{178} \item degree, \hyperpage{111} \item depth-first search, \hyperpage{117} \item deque, \hyperpage{42} \item derangement, \hyperpage{213} \item determinant, \hyperpage{219} \item diameter, \hyperpage{135} \item difference, \hyperpage{12} \item difference array, \hyperpage{93} \item Dijkstra's algorithm, \hyperpage{126}, \hyperpage{153} \item Dilworth's theorem, \hyperpage{193} \item Diophantine equation, \hyperpage{204} \item Dirac's theorem, \hyperpage{177} \item directed graph, \hyperpage{110} \item disjunction, \hyperpage{13} \item distance function, \hyperpage{272} \item distribution, \hyperpage{229} \item divisibility, \hyperpage{197} \item divisor, \hyperpage{197} \item dynamic array, \hyperpage{35} \item dynamic programming, \hyperpage{65} \item dynamic segment tree, \hyperpage{261} \indexspace \item edge, \hyperpage{109} \item edge list, \hyperpage{115} \item edit distance, \hyperpage{74} \item Edmonds–Karp algorithm, \hyperpage{184} \item equivalence, \hyperpage{13} \item Euclid's algorithm, \hyperpage{200} \item Euclid's formula, \hyperpage{206} \item Euclidean distance, \hyperpage{272} \item Euler tour technique, \hyperpage{168} \item Euler's theorem, \hyperpage{202} \item Euler's totient function, \hyperpage{201} \item Eulerian circuit, \hyperpage{174} \item Eulerian path, \hyperpage{173} \item expected value, \hyperpage{229} \item extended Euclid's algorithm, \hyperpage{204} \indexspace \item factor, \hyperpage{197} \item factorial, \hyperpage{14} \item Faulhaber's formula, \hyperpage{10} \item Fenwick tree, \hyperpage{86} \item Fermat's theorem, \hyperpage{202} \item Fibonacci number, \hyperpage{14}, \hyperpage{206}, \hyperpage{220} \item floating point number, \hyperpage{7} \item flow, \hyperpage{181} \item Floyd's algorithm, \hyperpage{156} \item Floyd–Warshall algorithm, \hyperpage{129} \item Ford–Fulkerson algorithm, \hyperpage{182} \item Freivalds' algoritm, \hyperpage{232} \item functional graph, \hyperpage{154} \indexspace \item geometric distribution, \hyperpage{230} \item geometric progression, \hyperpage{11} \item geometry, \hyperpage{265} \item Goldbach's conjecture, \hyperpage{199} \item graph, \hyperpage{109} \item greatest common divisor, \hyperpage{200} \item greedy algorithm, \hyperpage{57} \item Grundy number, \hyperpage{238} \item Grundy's game, \hyperpage{241} \indexspace \item Hall's theorem, \hyperpage{189} \item Hamiltonian circuit, \hyperpage{177} \item Hamiltonian path, \hyperpage{177} \item Hamming distance, \hyperpage{100} \item harmonic sum, \hyperpage{11}, \hyperpage{200} \item hash value, \hyperpage{245} \item hashing, \hyperpage{245} \item heap, \hyperpage{43} \item Heron's formula, \hyperpage{265} \item heuristic, \hyperpage{179} \item Hierholzer's algorithm, \hyperpage{175} \item Huffman coding, \hyperpage{63} \indexspace \item identity matrix, \hyperpage{218} \item implication, \hyperpage{13} \item in-order, \hyperpage{139} \item inclusion-exclusion, \hyperpage{212} \item indegree, \hyperpage{111} \item independence, \hyperpage{228} \item independent set, \hyperpage{190} \item index compression, \hyperpage{93} \item input and output, \hyperpage{4} \item integer, \hyperpage{6} \item intersection, \hyperpage{12} \item intersection point, \hyperpage{276} \item inverse matrix, \hyperpage{220} \item inversion, \hyperpage{26} \item iterator, \hyperpage{39} \indexspace \item Kadane's algorithm, \hyperpage{23} \item Kirchhoff's theorem, \hyperpage{223} \item knapsack, \hyperpage{72} \item knight's tour, \hyperpage{179} \item Kosaraju's algorithm, \hyperpage{158} \item Kruskal's algorithm, \hyperpage{142} \item Kőnig's theorem, \hyperpage{189} \indexspace \item Lagrange's theorem, \hyperpage{205} \item Laplacean matrix, \hyperpage{224} \item Las Vegas algorithm, \hyperpage{231} \item lazy propagation, \hyperpage{258} \item lazy segment tree, \hyperpage{258} \item leaf, \hyperpage{133} \item least common multiple, \hyperpage{200} \item Legendre's conjecture, \hyperpage{199} \item Levenshtein distance, \hyperpage{74} \item lexicographical order, \hyperpage{244} \item line segment intersection, \hyperpage{269} \item linear algorithm, \hyperpage{20} \item linear recurrence, \hyperpage{220} \item logarithm, \hyperpage{14} \item logarithmic algorithm, \hyperpage{20} \item logic, \hyperpage{13} \item longest increasing subsequence, \hyperpage{70} \item losing state, \hyperpage{235} \item lowest common ancestor, \hyperpage{167} \indexspace \item macro, \hyperpage{9} \item Manhattan distance, \hyperpage{272} \item map, \hyperpage{38} \item Markov chain, \hyperpage{230} \item matching, \hyperpage{187} \item matrix, \hyperpage{217} \item matrix multiplication, \hyperpage{218}, \hyperpage{232} \item matrix power, \hyperpage{219} \item maximum flow, \hyperpage{181} \item maximum independent set, \hyperpage{190} \item maximum matching, \hyperpage{187} \item maximum query, \hyperpage{83} \item maximum spanning tree, \hyperpage{142} \item maximum subarray sum, \hyperpage{21} \item meet in the middle, \hyperpage{54} \item memoization, \hyperpage{67} \item merge sort, \hyperpage{27} \item mex function, \hyperpage{238} \item minimum cut, \hyperpage{182}, \hyperpage{185} \item minimum node cover, \hyperpage{189} \item minimum query, \hyperpage{83} \item minimum spanning tree, \hyperpage{141} \item misère game, \hyperpage{238} \item Mo's algorithm, \hyperpage{255} \item modular arithmetic, \hyperpage{6}, \hyperpage{201} \item modular inverse, \hyperpage{202} \item Monte Carlo algorithm, \hyperpage{231} \item multinomial coefficient, \hyperpage{210} \indexspace \item natural logarithm, \hyperpage{15} \item nearest smaller elements, \hyperpage{79} \item negation, \hyperpage{13} \item negative cycle, \hyperpage{125} \item neighbor, \hyperpage{111} \item \texttt{next\_permutation}, \hyperpage{49} \item nim game, \hyperpage{237} \item nim sum, \hyperpage{237} \item node, \hyperpage{109} \item node cover, \hyperpage{189} \item not operation, \hyperpage{97} \item NP-hard problem, \hyperpage{20} \item number theory, \hyperpage{197} \indexspace \item or operation, \hyperpage{96} \item order statistic, \hyperpage{232} \item Ore's theorem, \hyperpage{177} \item outdegree, \hyperpage{111} \indexspace \item \texttt{pair}, \hyperpage{30} \item parent, \hyperpage{133} \item parenthesis expression, \hyperpage{211} \item Pascal's triangle, \hyperpage{209} \item path, \hyperpage{109} \item path cover, \hyperpage{190} \item pattern matching, \hyperpage{243} \item perfect matching, \hyperpage{189} \item perfect number, \hyperpage{198} \item period, \hyperpage{243} \item permutation, \hyperpage{49} \item persistent segment tree, \hyperpage{262} \item Pick's theorem, \hyperpage{272} \item point, \hyperpage{266} \item polynomial algorithm, \hyperpage{20} \item polynomial hashing, \hyperpage{245} \item post-order, \hyperpage{139} \item pre-order, \hyperpage{139} \item predicate, \hyperpage{13} \item prefix, \hyperpage{243} \item prefix sum array, \hyperpage{84} \item Prim's algorithm, \hyperpage{147} \item prime, \hyperpage{197} \item prime decomposition, \hyperpage{197} \item priority queue, \hyperpage{43} \item probability, \hyperpage{225} \item programming language, \hyperpage{3} \item Prüfer code, \hyperpage{216} \item Pythagorean triple, \hyperpage{206} \indexspace \item quadratic algorithm, \hyperpage{20} \item quantifier, \hyperpage{13} \item queen problem, \hyperpage{50} \item queue, \hyperpage{43} \item quickselect, \hyperpage{232} \item quicksort, \hyperpage{232} \indexspace \item random variable, \hyperpage{228} \item \texttt{random\_shuffle}, \hyperpage{39} \item randomized algorithm, \hyperpage{231} \item range query, \hyperpage{83} \item regular graph, \hyperpage{111} \item remainder, \hyperpage{6} \item \texttt{reverse}, \hyperpage{39} \item root, \hyperpage{133} \item rooted tree, \hyperpage{133} \item rotation, \hyperpage{243} \indexspace \item scaling algorithm, \hyperpage{185} \item segment tree, \hyperpage{89}, \hyperpage{257} \item set, \hyperpage{12}, \hyperpage{37} \item set theory, \hyperpage{12} \item shoelace formula, \hyperpage{271} \item shortest path, \hyperpage{123} \item sieve of Eratosthenes, \hyperpage{200} \item simple graph, \hyperpage{112} \item sliding window, \hyperpage{81} \item sliding window minimum, \hyperpage{81} \item \texttt{sort}, \hyperpage{29}, \hyperpage{39} \item sorting, \hyperpage{25} \item spanning tree, \hyperpage{141}, \hyperpage{223} \item sparse segment tree, \hyperpage{261} \item sparse table, \hyperpage{85} \item SPFA algorithm, \hyperpage{126} \item Sprague–Grundy theorem, \hyperpage{238} \item square matrix, \hyperpage{217} \item square root algorithm, \hyperpage{251} \item stack, \hyperpage{42} \item string, \hyperpage{36}, \hyperpage{243} \item string hashing, \hyperpage{245} \item strongly connected component, \hyperpage{157} \item strongly connected graph, \hyperpage{157} \item subsequence, \hyperpage{243} \item subset, \hyperpage{12}, \hyperpage{47} \item substring, \hyperpage{243} \item subtree, \hyperpage{133} \item successor graph, \hyperpage{154} \item suffix, \hyperpage{243} \item sum query, \hyperpage{83} \item sweep line, \hyperpage{275} \indexspace \item time complexity, \hyperpage{17} \item topological sorting, \hyperpage{149} \item transpose, \hyperpage{217} \item tree, \hyperpage{110}, \hyperpage{133} \item tree query, \hyperpage{163} \item tree traversal array, \hyperpage{164} \item trie, \hyperpage{244} \item \texttt{tuple}, \hyperpage{30} \item \texttt{typedef}, \hyperpage{8} \item twin prime, \hyperpage{199} \item two pointers method, \hyperpage{77} \item two-dimensional segment tree, \hyperpage{264} \indexspace \item uniform distribution, \hyperpage{230} \item union, \hyperpage{12} \item union-find structure, \hyperpage{145} \item universal set, \hyperpage{12} \indexspace \item vector, \hyperpage{35}, \hyperpage{217}, \hyperpage{266} \indexspace \item Warnsdorf's rule, \hyperpage{179} \item weighted graph, \hyperpage{111} \item Wilson's theorem, \hyperpage{206} \item winning state, \hyperpage{235} \indexspace \item xor operation, \hyperpage{97} \indexspace \item Z-algorithm, \hyperpage{247} \item Z-array, \hyperpage{247} \item Zeckendorf's theorem, \hyperpage{206} \end{theindex}