Useful data structure & algorithms

Disjoint set

Dynamic Program

String

Trees