Reminder: in case of any technical issues, you can use the lightweight website m1.codeforces.com, m2.codeforces.com, m3.codeforces.com. ×

hsk's blog

By hsk, history, 4 years ago, In English,

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
  • Dynamic Programming
  • Flow
  • Game Theory
  • Graphs
  • Greedy
  • Maths
  • Matrix Exponentiation
  • Miscellaneous
  • Prefix and Suffix Trees
  • Segment Trees
  • Trees

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.

  • 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](https://www.hackerearth.com/users/

  • Questions on

- Hackerrank

- Codechef

- A2oj

- Codeforces

 
 
 
 
  • Vote: I like it
  • +30
  • Vote: I do not like it

»
4 years ago, # |
  Vote: I like it +6 Vote: I do not like it

Auto comment: topic has been updated by hsk (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it +6 Vote: I do not like it

Auto comment: topic has been updated by hsk (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it +6 Vote: I do not like it

Auto comment: topic has been updated by hsk (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it +5 Vote: I do not like it

Auto comment: topic has been updated by hsk (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Awesome. It helps a lot. Thanks.

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

in A2oj if we have just started solving problems for example take graph i have learnt basic algorithms so now i want to practice and apply them so should i start solving from difficulty level 10 or difficulty level 1 which is easier level 1 or 10

  • »
    »
    3 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    The difficulty increases with increase in level. So you should start with level 1 and go for 2,3.. and so on.

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

thanks a lot

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Ternary search blog site does not work anymore.

»
6 days ago, # |
  Vote: I like it 0 Vote: I do not like it

How do I configure vim for competitive coding in windows?