hkirat/Algorithmic-Resources

A Curated list of Topic wise Theory and Questions to Get You Started On Competitive Coding.
Latest commit 5c875aa May 12, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information. CONTRIBUTING.md Oct 22, 2015 LICENCE Dec 4, 2015 README.md May 11, 2019

Algorithmic Resources

A Curated list of Topic wise Theory and Questions to Get You Started On Competitive Coding.

Binary Search and Ternary Search

Binary Search : The process of exploiting the property of an array of being sorted to arrive at answers of questions in non linear time.

Ternary Search : The process of exploiting the property of a function having double diffrential of a constant sign to arrive to results in non linear time.

Dynamic Programming

Used to solve questions which can be broken down into smaller sub problems.It involves the technique of saving the result of a problem for future reference.

• Theory

• Topcoder - Dynamic Programming from Novice to Advanced.
• Codechef - Tutorial on Dynamic Programming.
• Quora - Getting started with Dynamic Programming (Quora Discussion).
• Questions on

• Theory

• Questions

Game Theory

Used to solve problems involving mathematical modelling of conflict and cooperation among rational players.

• Theory

• Stanford - PDF on Combinatorial Games.
• Wikipedia - Introduction to Nim Games.
• Book - Composite Mathematical Games.
• Book - Game Theory By Thomas S. Ferguson.
• Wikipedia - Sprague Grundy Theorem.
• Topcoder - Introduction to Algorithmic Games.
• Questions on

Graphs

A graph consists of nodes and the interconnection between them.The problems involve finding shortest distance, connectivity and flow.

Greedy

Greedy problems involve solving a problem statement considering the most greedy, i.e. most optimal solution at the given time without taking into consideration the future effects of it.

Maths

Problem related to mathematics are quite common in the domain of competitive programming.It involved topics like geometry, algebra, discrete mathematics and probability.

• Theory

• Stanford - Stanford's Guide on Introduction To Competitive Programming.
• Aduni - Course Guide to Discrete Mathematics.
• Topcoder - Understanding Probability.
• Questions on

Matrix Exponentiation

Used to solve problems which involve finding a solution to a given series by using exponentiation property on multiplication of matrices.The complexity is thus reduced to logrithmic from linear.

• Theory

• zobayer - Introduction to Matrix exponentiations
• Quora - Solving Dynamic Programming with Matrix Exponentiation.
• Codechef - Solving Recurrences using Cayley Hamilton Theorem and Matrix Exponentiation
• Questions on

Prefix and Suffix Trees

Tries are some kind of rooted trees in which each edge has a character on it.

Binary Indexed Trees

A Fenwick tree or binary indexed tree is a data structure that can efficiently update elements and calculate prefix sums in a table of numbers.

Segment Trees

Segment tree is a tree for which each node represents an interval.

Trees

A tree is a data structure made up of nodes or vertices and edges without having any cycle.

You can’t perform that action at this time.