There are many good blogs in **Codeforces Blog** where people describes about different **Algorithm and Data Structures** .

Lets gather all the resources about **Algorithm and Data Structures** Explanations. You can comment bellow the link and about it . I will always update that post gather new resources.Hope ,its help all and inspire all to write new blog post in future :)

Last added blogs link will have a tag **(New)**

Resources:

**C++ STL**

C++ STL: Policy based data structures

C++ STL: Policy based data structures. Part 2

**String Processing**

Suffix tree. Basics. Building in O(nlogn)

Great resource for string algorithms

Aho-Corasick algorithm. Construction

Suffix tree. Ukkonen's algorithm

On suffix automaton (and tree) **New**

**Data Structures**

Basic Binary Indexed Tree (English version)

Memory-optimal Range Queries and Updates in logN

Segment tree with insertion and deletion operators

An efficient way to strengthen up your segment tree

Algorithm Gym :: Data structures

Algorithm Gym :: Everything About Segment Trees

Palindromic tree: behind the scenes

Implicit cartesian tree in GNU C++ STL

Efficient and easy segment trees

Splay tree and its implementation. **New**

**Game Theory**

**Dynamic Programming**

Dynamic Programming Optimizations

Enumeration of combinatorial sequences

Dynamic programming over subsets and paths in graphs

Kadane's Algorithm — (Dynamic Programming) — For new Solvers!

A little bit of classics: dynamic programming over subsets and paths in graphs

**Geometry**

Easy geometry using std::complex **New**

**Graph**

Algorithm Gym :: Graph Algorithms

Tutorial on Heavy Light Decomposition + Problems

Heavy-light decompositon — it can be simple!

Faster Dijkstra on Special Graphs **New**

**Sorting & Searching**

**Number Theory**

Sieve Methods : Prime, Divisor, Euler Phi etc

Prime Factorization In log(n) After Sieve

Counting Divisors of a Number in O(N^(1/3))

**Misc**

An awesome list for competitive programming! **New**

Codechef blog

When I see such list with a lot of tutorials/problems, I always want to ask: have you read it, or you just posted it?

My answer depends on your definition of "have you read it" .

It took you a week to come up with this comment?

I hadn't seen your comment till now and saw it only after this blogpost came up in recent posts.

so have you tried it?

First of all thank you for including my blog into this list.

The formatting of my blog is completely messed up now. I need to some day sit down and correct it :)

Thanks

good idea!

What about making a wiki page to give anyone permission to update them. For example, wiki page of Lazarus. In Lazarus page, there are a large number of trickS and tips in application developing.

That sounds great!

Can you provide Lazarus page?

http://codeforces.com/blog/entry/4898

Implicit cartesian tree in GNU C++ STL.

A little bit of classics: dynamic programming over subsets and paths in graphs

This list are going to be too long. I think you should divide the list into sections, for instance, algorithm and data structure.

Hi, have a look at this link : http://discuss.codechef.com/questions/48877/data-structures-and-algorithms

First Comment about that !!

Oh sorry, I didn't look at that.

thank's

Maybe this and this

Btw, can you make links relative, please?

(/blog/entry/xxx instead of codeforces.com/blog/entry/xxx then it will be ok for .ru users)

Updated ! Now its ok for .ru user .

Treaps

http://codeforces.com/blog/entry/3767

MO's algorithm : http://blog.anudeep2011.com/mos-algorithm/

http://codeforces.com/blog/entry/7383

http://codeforces.com/blog/entry/7262

http://codeforces.com/blog/entry/16221

Suffix tree. Ukkonen's algorithm

if only i can see it earlier! can't wait to read.

Hi , this tutorial is so useful too: http://codeforces.com/blog/entry/14659

+1

I find this so helpful, thus I just comment in order that it can be displayed in the recent actions and receive more attention :))) .

List must contain Al.Cash blog about segment trees.here is the link

Please :)

Hi, i think this can be useful too : Sqrt Descomposition.

See below.

http://codeforces.com/blog/entry/22608

He mentions in the post that this blog is only organising various

Codeforcesblogs.Fixed.

Some more posts:

KMP [Dead link]

Tutorial on FFT — The tough made simple.

O(n) solution for 631E (Convex Hull Trick special case)

Faster Dijkstra on Special Graphs [Tutorial]

Mo's Algorithm on Trees [Tutorial]

Splay tree and its implementation.

An awesome list for competitive programming!

Easy geometry using std::complex

[Tutorial] Rolling hash and 8 interesting problems [Editorial]

On the mathematics behind rolling hashes and anti-hash tests

All of the good tutorials found on codeforces

General ideas

An alternative sorting order for Mo's algorithm

Efficient Data Structure for random access and random inserts

Linear Recurrence and Berlekamp-Massey Algorithm.

Link to a useful comment of this blog

Blogewoosh series

Digit DP

[Tutorial] Searching Binary Indexed Tree in O(log(N)) using Binary Lifting

Golden Section Search

'Meet in the middle' with shortest path problems of unweighted graph

[Tutorial] Recurrent Sequences — Application of combinatorics in DP (basics)

Tasks involving numerical integration

Slope Trick

check ur KMP link

dsu on tree link

Can you add my blogpost on parallel binary search too?

Y0u can add:

2D Range Minimum Query in O(1)

DP on Trees Tutorial

A short guide to suffix automata

C++ Tricks

Non-recursive Implementation of Range Queries and Modifications over Array

Dominator Tree

On Euler tour trees

LCA's binary lifting method for path queries on trees

Everything About Dynamic Programming

Transform Skip list into a BIT with insert operator

I think that can be interesting... Way of problemsetter

Sum over Subsets(SOS)

Maximum sum of coprime pair

RMQ with "Push Update"

Closest point for all points in a plane

Modular Segment Tree with Lazy Propagation

FFT and NTT

[Tutorial] Non-trivial DP Tricks and Techniques

[Tutorial] Sack (dsu on tree)

Counting problems from A to B

Dynamic Programming on Integers

BitMasking & Subset Listing for Absolute Beginners

sum of all elements of all the subsets in power set

Segment Tree Problems

how to find leftmost 1-bit in C++ in O(1)?

An amazing way to calculate 10^18-th fibonacci number using 25 lines of code.

An efficient way to solve some counting problems without matrix multiplication

How to improve your problem-solving level?

String Algorithms

Codeforces bookmarks

All codeforces round tutorials

Tutorial on Trie and example problems

If you ask me how to improve your algorithm competition skill, I will give you the link of this blog.

Segment Tree : The general concept behind Lazy Propagation

[Tutorial] Slope Trick

How to come up with the solutions

Awesome Course Resources for Competitve Programming

Heavy-light decomposition implementation

Very Useful Post!Thanks! Data Structures

Some general purpose tricks:

http://codeforces.com/blog/entry/48417

Another set of links:

http://codeforces.com/blog/entry/57282

Add this too. http://codeforces.com/blog/entry/51272

(Burnside Lemma)