Algorithm Design By Dynamic Programming Problems And Solutions