algorithmsandtheoryofcomputationhandbook