Professional Documents
Culture Documents
Competitive Coding Requirements
Competitive Coding Requirements
(a)Number Theory
(b)Probability
(c)Counting
1. Pigeonhole principle
2. Inclusion Exclusion
3. Special Numbers [Stirling,Fibonacci,Catalan, Eulerian, Harmonic, Bernoulli]
4. Polya Counting
5. Burnside lemma
(d)Permutation Cycles
(e)Linear Algebra
1. Addition And Subtraction Of Matrices
2. Multiplication ( Strassen's algorithm ), Logarithmic exponentiation
3. Matrix Transformations [ Transpose, Rotation Of Matrix, Representing Linear
Transformations Using Matrix ]
4. Determinant , Rank and Inverse Of Matrix [ Gaussian Elimination , Gauss
Jordan Elimination]
5. Solving System Of Linear Equations
6. Matrix Exponentiation To Solve Recurrences
7. Eigenvalues And Eigen vector
8. Roots of a polynomial [ Prime factorization of a polynomial, Integer roots of a
polynomial]
9. Lagrange Interpolation
(e)Game Theory
1. Basic Concepts & Nim Game [Grundy Theorem , Grundy Number]
2. Hackenbush
(f)Group Theory
1. Burnside Lemma
2. Polya's Theorem
Graphs:
(a)Graph Representation
1. Adjacency Matrix
2. Adjacency List
3. Incidence Matrix
4. Edge List
(b)Graph Types
1. Directed
2. Undirected
3. Weighted
4. Unweighted
5. Planar
6. Hamilton
7. Euler
8. Special Graphs
1. Cycle Detection
2. Articulation Points
3. Bridges
4. Strongly Connected Component
5. Connected Component
6. Path Finding
7. Solving Maze
8. Biconnectivity in Graph
9. Topological Sorting
10. Bipartite Checking
11. Planarity Testing
12. Flood-fill algorithm
1. Prim’s Algorithm
2. Kruskal Algorithm
(d)Single Source Shortest-Path
1. Dijkstra
2. Bellman Ford
(f)Euler Tour
(g)Flow
1. Ford-Fulkerson [PFS,DFS,BFS]
2. Dinic's Algorithm
3. Min Cost - Max Flow [Successive Shortest Path Algo,Cycle Cancelling
Algorithm]
4. Max Weighted BPM [Kuhn Munkres algorithm/Hungarian Method]
5. Stoer Wagner Min-Cut Algo
6. Hop-Kraft BPM
7. Edmond Blossom Shrinking Algorithm
1. 2-SAT,
2. LCA
3. Maximum Cardinality Matching
4. Application Flow
5. Min Path Cover Over Dag
6. Independent Edge Disjoint Path
7. Minimum Vertex Cover
8. Maximum Independent Set
Data Structures:
1. Arrays
2. Linked List
3. Trees (Binary Tree And Binary Search Tree)
4. Stacks
5. Queues
6. Heap
7. Hash Tables
8. Disjoint-Set Data Structures
9. Trie
10. Segment Tree
11. Binary Index Tree
12. Treap
1. Linear Search
2. BInary Search
3. Ternary Search
4. Selection Sort
5. Bubble Sort
6. Insertion Sort
7. Merge Sort
8. Quick Sort
9. Quick Select
10. Heap Sort
11. Radix Sort
12. Counting Sort
Greedy:
Classical Problems of Greedy & Concept
example : Fractional Knapsack
1. DP + Tree
2. DP + Bit Masking
3. DP + Binary Search
4. DP + Graph
5. DP + Matrix Exponentiation
6. DP + Probability Space
7. DP + Crack Recurrence
1. BackTracking
2. Man In Middle
3. Newton-Raphson to reach the fixed point
4. Brute Force
5. Constructive Algo
6. Sliding Window
7. Pancake Sorting
Resources:
Data Structures And Algorithm :
Algorithm Tutorials
Data Structures and Algorithms
Modular Multiplicative Inverse
Heavy Light Decomposition
Tutorial: Range Updates in Fenwick Tree by Amey Dharwadker on
Programming Contests
visualising data structures and algorithms through animation
Coding contest trick: Meet in the middle
Introduction to Dynamic Programming
Dynamic Programming Practice Problems
Solving Linear Recurrence for Programming Contest
Tutorial on Trie and example problems by Lalit Kundu on Threads @ IIIT Hyderabad
Binary Indexed Trees with some Solved Example.
Dynamic programming problems with bitmasking
Let us code: Segment Trees
C++:
C++ Programming Tutorial
Containers - C++ Reference
Standard Template Library Programmer's Guide