Extensions of Dynamic Programming Approach for Combinatorial Optimization