Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hkirat/Algorithmic-Resources

A Curated list of Topic wise Theory and Questions to Get You Started On Competitive Coding.
https://github.com/hkirat/Algorithmic-Resources

List: Algorithmic-Resources

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# Algorithmic Resources

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

Topics
---
- [Arrays](#arrays)
- [Binary and Ternary Search](#binary-and-ternary-search)
- [Dynamic Programming](#dynamic-programming)
- [Flow](#flow)
- [Game Theory](#game-theory)
- [Graphs](#graphs)
- [Greedy](#greedy)
- [Maths](#maths)
- [Matrix Exponentiation](#matrix-exponentiation)
- [Miscellaneous](#miscellaneous)
- [Prefix and Suffix Trees](#prefix-and-suffix-trees)
- [Binary Indexed Trees](#binary-indexed-trees)
- [Segment Trees](#segment-trees)
- [Trees](#trees)

## Arrays
---
- Questions

- [Sweets - Array](https://kira.acadcare.com/course/cpp-competitive-prog/lecture/5cc09ff84df01f024022c872/content/5cc0a5f3793a8e193a604b35)
- [Prefix and Suffix](https://kira.acadcare.com/course/cpp-competitive-prog/lecture/5cc09ff84df01f024022c872/content/5cc0a0f74df01f024022c874)
- [Holiday Season](https://kira.acadcare.com/course/cpp-competitive-prog/lecture/5cc09ff84df01f024022c872/content/5cc3f1f04df01f024022c876)
- [Largest Number](https://kira.acadcare.com/course/cpp-competitive-prog/lecture/5cc09ff84df01f024022c872/content/5cc3f2c34df01f024022c878)
- [Marbles](https://kira.acadcare.com/course/cpp-competitive-prog/lecture/5cc09ff84df01f024022c872/content/5cc3f31f4df01f024022c87a)
- [Wave Array](https://kira.acadcare.com/course/cpp-competitive-prog/lecture/5cc09ff84df01f024022c872/content/5cd67eabe5d6f744d50f59b5)

## 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.*

- Theory

- [Hackerearth](https://www.hackerearth.com/notes/power-of-binary-search/) - Power of Binary search by [Aman Goel](https://www.hackerearth.com/users/amangoel.vsec/) (Easy).
- [Topcoder](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/) - Binary Search by [lovro](https://www.topcoder.com/member-profile/lovro/) (Hard).
- [Hackerearth](https://www.hackerearth.com/practice/algorithms/searching/ternary-search/tutorial/) - Tutorial on Ternary Search.

- Questions on

- [Codeforces](http://codeforces.com/problemset/tags/binary%20search)
- [A2oj](http://a2oj.com/Category.jsp?ID=40)
- [Codechef](https://discuss.codechef.com/tags/binarysearch/)

## 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](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/) - Dynamic Programming from Novice to Advanced.
- [Codechef](https://www.codechef.com/wiki/tutorial-dynamic-programming) - Tutorial on Dynamic Programming.
- [Quora](https://www.quora.com/How-can-one-start-solving-Dynamic-Programming-problems/) - Getting started with Dynamic Programming (Quora Discussion).

- Questions on

- [Hackerrank](https://www.hackerrank.com/domains/algorithms/dynamic-programming)
- [spoj](http://problemclassifier.appspot.com/?keywords=dp)
- [More Problems on SPOJ](http://apps.topcoder.com/forums/;jsessionid=C684F032169B7439C8012AAB6BA2018C?module=Thread&threadID=674592)
- [A2oj](http://a2oj.com/Category.jsp?ID=33)
- [Codeforces](http://codeforces.com/problemset/tags/dp)

## Flow
---

- Theory

- [Topcoder - Max Flow Part 1](https://www.topcoder.com/community/data-science/data-science-tutorials/maximum-flow-section-1/)
- [Topcoder - Max Flow Part 2](https://www.topcoder.com/community/data-science/data-science-tutorials/maximum-flow-section-2/)

- Questions

- [spoj](http://problemclassifier.appspot.com/?keywords=flow)
- [A2oj](http://a2oj.com/Category.jsp?ID=12)

## Game Theory
---
*Used to solve problems involving mathematical modelling of conflict and cooperation among rational players.*

- Theory
- [Stanford](http://web.stanford.edu/class/cs97si/05-combinatorial-games.pdf) - PDF on Combinatorial Games.
- [Wikipedia](https://en.wikipedia.org/wiki/Nim) - Introduction to Nim Games.
- [Book](http://www.cs.ox.ac.uk/files/2735/Composite_games.pdf) - Composite Mathematical Games.
- [Book](http://www.math.ucla.edu/~tom/Game_Theory/comb.pdf) - Game Theory By Thomas S. Ferguson.
- [Wikipedia](https://en.wikipedia.org/wiki/Sprague%E2%80%93Grundy_theorem) - Sprague Grundy Theorem.
- [Topcoder](https://www.topcoder.com/community/data-science/data-science-tutorials/algorithm-games/) - Introduction to Algorithmic Games.

- Questions on
- [A2oj](http://a2oj.com/Category.jsp?ID=91)

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

- Theory

- [Topcoder](https://topcoder.com)
- [Identifying a graph on Topcoder](https://www.topcoder.com/community/data-science/data-science-tutorials/introduction-to-graphs-and-their-data-structures-section-1/)
- [Searching in a Graph](https://www.topcoder.com/community/data-science/data-science-tutorials/introduction-to-graphs-and-their-data-structures-section-2/)
- [Path Algorithms](https://www.topcoder.com/community/data-science/data-science-tutorials/introduction-to-graphs-and-their-data-structures-section-3/)
- [Codeforces](http://codeforces.com/blog/entry/16221) - Important Graph Algorithms by [PrinceOfPersia](http://codeforces.com/profile/PrinceOfPersia)
- [Codechef](https://www.codechef.com/wiki/tutorial-graph-theory-part-1) - Tutorial on Graph Theory - part 1

- Questions on

- [Codeforces](http://codeforces.com/problemset/tags/graphs)
- [Codechef](https://discuss.codechef.com/tags/graph/)
- [A2oj](http://a2oj.com/Category.jsp?ID=13)

## 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.*

- Theory

- [Topcoder](https://www.topcoder.com/community/data-science/data-science-tutorials/greedy-is-good/) - Greedy is Good.
- [Stackoverflow.](http://stackoverflow.com/questions/7887487/how-to-spot-a-greedy-algorithm) - Tutorial on how to spot a greedy algorithm.
- [Hackerearth](https://www.hackerearth.com/notes/greedy-algorithm/) - Tutorial on greedy algorithms by [Akash Sharma](https://www.hackerearth.com/users/r3gz3n/).

- Questions on

- [Codeforces](http://codeforces.com/problemset/tags/greedy)
- [A2oj](http://a2oj.com/Category.jsp?ID=56)

## 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](http://web.stanford.edu/class/cs97si/02-mathematics.pdf) - Stanford's Guide on Introduction To Competitive Programming.
- [Aduni](http://www.aduni.org/courses/discrete/index.php?view=cw) - Course Guide to Discrete Mathematics.
- [Topcoder](https://www.topcoder.com/community/data-science/data-science-tutorials/understanding-probabilities/) - Understanding Probability.

- Questions on

- [A2oj](http://a2oj.com/Category.jsp?ID=86)
- [Codechef](https://discuss.codechef.com/tags/simple-math/) - Basic
- [Codechef](https://discuss.codechef.com/tags/maths/) - Advanced

## 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](http://zobayer.blogspot.in/2010/11/matrix-exponentiation.html) - Introduction to Matrix exponentiations
- [Quora](https://threads-iiith.quora.com/Solving-Dynamic-Programming-with-Matrix-Exponentiation) - Solving Dynamic Programming with Matrix Exponentiation.
- [Codechef](https://discuss.codechef.com/questions/49614/linear-recurrence-using-cayley-hamilton-theorem) - Solving Recurrences using Cayley Hamilton Theorem and Matrix Exponentiation

- Questions on

- [A2oj](http://a2oj.com/Category.jsp?ID=32)
- [POWSUM on CodeChef](https://www.codechef.com/problems/POWSUMS)

## Miscellaneous
---

- Mo's Algorithm
- [Blog Post By Anudeep Nekkanti](http://blog.anudeep2011.com/mos-algorithm/)
- [Hackerearth](https://www.hackerearth.com/notes/mos-algorithm/)
- [DQUERY on Spoj](http://www.spoj.com/problems/DQUERY/en/)
- [FREQUENT on Spoj](http://www.spoj.com/problems/FREQUENT/)

- Persistant Segment Trees
- [Blog Post By Anudeep Nekkanti](http://blog.anudeep2011.com/persistent-segment-trees-explained-with-spoj-problems/)
- [MKTHNUM on Spoj](http://www.spoj.com/problems/MKTHNUM/en/)

- Mobius Function
- [Dance With Mobius Function by Surya Kiran](https://www.quora.com/profile/Surya-Kiran/Posts/A-Dance-with-Mobius-Function)

- Treaps
- [Codeforces](http://codeforces.com/blog/entry/11148)
- [Wikipedia](https://en.wikipedia.org/wiki/Treap)
- [TREAP on Spoj](http://www.spoj.com/problems/TREAP/)

- Bit Manipulation
- [Hackerearth](https://www.hackerearth.com/notes/bit-manipulation/) - Tutorial on Bit Manipulation by [Prateek Garg](https://www.hackerearth.com/users/ptk23/).
- [Hackerrank](https://www.hackerrank.com/domains/algorithms/bit-manipulation) - Questions On Hackerrank on bit manipulation.

- Other Resources
- [Data Structures](http://codeforces.com/blog/entry/15729) - A guide to high level data structures by [PrinceOfPersia](http://codeforces.com/profile/PrinceOfPersia)

## Prefix and Suffix Trees
---
*Tries are some kind of rooted trees in which each edge has a character on it.*

- Theory

- [Wikipedia](https://en.wikipedia.org/wiki/Trie) - Introduction to Tries.
- [Marknelson](http://marknelson.us/1996/08/01/suffix-trees/) - Tutorial on prefix and suffix trees by Sartaj Sahni
- [Marknelson](http://marknelson.us/1996/08/01/suffix-trees/) - Suffix Trees Explained.
- [Geeksforgeeks](http://www.geeksforgeeks.org/trie-insert-and-search/) - Trie, Insertion and Search
- [Geeksforgeeks](http://www.geeksforgeeks.org/trie-delete/) - Trie, Deletion.

- Questions on

- [Codechef](https://www.codechef.com/problems/TWSTR/)
- [Another problem on Codechef](https://www.codechef.com/SEPT13/problems/TMP01)
- [A2oj](http://a2oj.com/Category.jsp?ID=49)

## 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.*

- Theory

- [Hackerearth](https://www.hackerearth.com/practice/notes/binary-indexed-tree-or-fenwick-tree/)
- [Wikipedia](https://en.wikipedia.org/wiki/Fenwick_tree) - Fenwick Tree (data structure)
- [Topcoder](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-indexed-trees/)
- Questions on
- [A2oj](https://a2oj.com/Category.jsp?ID=26)

## Segment Trees
---
*Segment tree is a tree for which each node represents an interval.*

- Theory

- [Hackerearth](https://www.hackerearth.com/notes/segment-trees-for-beginners/) - Segment trees for Beginners by [Ayush Agrawal](https://www.hackerearth.com/users/ayusha1107/).
- [Codeforces](http://codeforces.com/blog/entry/15890) - Everything about Segment trees by [PrinceOfPersia](http://codeforces.com/profile/PrinceOfPersia)
- [Lazy Propogation](http://se7so.blogspot.in/2012/12/segment-trees-and-lazy-propagation.html) - Solving problems related to updation of segment tree in logrithmic time (also known as lazy propogation).

- Questions on

- [Codechef](https://discuss.codechef.com/tags/segment-tree/)
- [A2oj](http://a2oj.com/Category.jsp?ID=25)

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

- Theory

- [Hackerearth](https://www.hackerearth.com/notes/trees/) - Baisc introduction to trees and terminologies related to it by [Anuj Garg](https://www.hackerearth.com/users/anuj09garg/)
- [Wikipedia](https://en.wikipedia.org/wiki/Tree_(data_structure)) - Tree (data structure)

- Questions on

- [Hackerrank](https://www.hackerrank.com/domains/data-structures/trees)
- [Codechef](https://discuss.codechef.com/tags/trees/)
- [A2oj](http://a2oj.com/Category.jsp?ID=89)
- [Codeforces](http://codeforces.com/problemset/tags/trees)