# Competitive programming topics ###### tags: `Competitive programming` # Problem theme list and tags - Basic + Calculation + Conditionals + Loops + for + while + else, break, continue + Strings + Arrays/Lists + 2D arrays + Functions + Recursive functions - Number theory & maths + Number systems + Binary, Octal, Decimal, Hexadecimal + Bitwise operations + Prime & composite numbers + Primality tests + Prime generation techniques + GCD, LCM + Integer Factorization + Count, sum, product of divisors - Modulus arithmetic + Modular Inverse + Modulus arithmetic, basic postulates (Including modular linear equations, Continued fraction and Pell's equation) + Fermat's theorem + Euler’s Totient theorem (totient function, order, primitive roots ) + Chinese remainder theorem + Wilson theorem: nCr % p in O(p) preprocess and O(log n ) query + Lucas Theorem - Math + Set theory + Inclusion-exclusion + Fibonacci + Catalan + Big number operations + Logarithmic Exponentiation + Josephus problem + Sequences + Polynomials + Matrix + Probability + Counting + Combination + Permutation + Permutation cycles + Bài toán chia kẹo của Euler + Burnside's lemma + Cayley's formula - Computational geometry + Area of triangles + Area of polygons + Convex and concave polygons + Point inside, outside polygons + Center of mass + Overlapping rectangles + Line intersection + Circle intersection + Angles + Distances + Transformations: + Translation (Slide) + Reflection (Flip) + Rotation (Turn) + Enlargement (Dilation) + Dot product + Cross product + Convex hull + Sweep Line - String + String manipulation + Search in strings + String prefix + Trie structure + Z-algorithm - Prefix sum - Data structures + Array/List/Vector + Stack/Queue + Linked list + Double linked list + 2D arrays, Multi-dimensional arrays + Map/dict + Set + Heap & priority queue + Hash Tables - Searching + Backtracking + Binary Search + Ternary Search + Meet in the middle - Greedy - Sorting + Simple sorting + Quick sort + Merge sort + O(n) sort (distribution counting) - Recursive + Recursive + Recursive with caching + Divide and Conquer - Dynamic programming + 1-D DP + 1-D DP with tracing + 2-D DP + 2-D DP with tracing + 3-D DP + Interval DP + Tree DP + Subset DP - Backtracking + Brute force + Backtracking with greedy paradigm + Backtracking with pruning - Ad-hoc - Suffix Array - Graph Search + BFS + DFS - Graph connectivity, strongly connected components - Eulerian Graph - Hamiltonian Graph - Binary tree traversal - Reverse Polish notation: RPN - Binary search tree: BST - Shortest Path in a weighted Graph - Minimum Spanning Tree - Maximal Flow - Maximal matching in a bipartite graph - Game theory - Amortized analysis + Two pointers + Sliding window - Range queries + Range minimum Query(RMQ) + Fenwick tree (binary indexed tree) + Segment tree / Interval tree - AVL Trees