Sparse dynamic programming I