Topic wise Coding Resources

Revision en3, by hsk, 2016-01-31 23:22:02

So I made this listing for topic wise coding resources. It is open sourced here Thought of sharing it here too!

Awesome Competitive Coding Awesome

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

Inspired by the awesome list thing. You might also like to read complete awesome-list.

Contributing

Kindly Go Through Contribution Guidelines First.

Topics

Binary 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 — Power of Binary search by Aman Goel (Easy).

- Topcoder — Binary Search by lovro (Hard).

- Ternary Search — Blog Post on Ternary Search.

  • Questions on

- Codeforces

- A2oj

- Codechef

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.

  • Questions on

- Hackerrank

- spoj

- More Problems on SPOJ

- A2oj

- Codeforces

Flow


  • Theory

- Topcoder — Max Flow Part 1

- Topcoder — Max Flow Part 2

  • Questions

- spoj

- A2oj

Game Theory

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

  • Theory

    • Book — Composite Mathematical Games.
    • Book — Game Theory By Thomas S. Ferguson.
    • 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.

  • Theory

- Topcoder

- Identifying a graph on Topcoder

- Searching in a Graph

- Path Algorithms

- Codeforces — Important Graph Algorithms by PrinceOfPersia

- Codechef — Tutorial on Graph Theory — part 1

  • Questions on

- Codeforces

- Codechef

- A2oj

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 — Greedy is Good.

- Stackoverflow. — Tutorial on how to spot a greedy algorithm.

- Hackerearth — Tutorial on greedy algorithms by Akash Sharma.

  • Questions on

- Codeforces

- A2oj

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

- A2oj

- Codechef — Basic

- Codechef — 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 — Introduction to Matrix exponentiations

- Quora — Solving Dynamic Programming with Matrix Exponentiation.

  • Questions on

- A2oj

Miscellaneous


- Hackerearth

- DQUERY on Spoj

- FREQUENT on Spoj

- Wikipedia

- TREAP on Spoj

Prefix and Suffix Trees

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

  • Theory

- Wikipedia — Introduction to Tries.

- Marknelson — Tutorial on prefix and suffix trees by Sartaj Sahni

- Marknelson — Suffix Trees Explained.

  • Questions on

- Codechef

- Another problem on Codechef

- A2oj

Segment Trees

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

- Codeforces — Everything about Segment trees by 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

- A2oj

Trees

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

  • Theory

- Hackerearth — Baisc introduction to trees and terminologies related to it by Anuj Garg

- [Wikipedia](https://en.wikipedia.org/wiki/Tree_(data_structure)) — Tree (data structure)

  • Questions on

- Hackerrank

- Codechef

- A2oj

- Codeforces

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en5 English hsk 2016-01-31 23:29:18 2 Tiny change: 'Theory\n\n - [Ha' -
en4 English hsk 2016-01-31 23:26:23 536
en3 English hsk 2016-01-31 23:22:02 60
en2 English hsk 2016-01-31 23:19:45 34
en1 English hsk 2016-01-31 23:18:17 11473 Initial revision (published)