Many algorithm problem can be solved through both DFS and Dynamic Programming. Is there any direct or indirect connections between these two algorithms? Or if i thought up the subproblem of dp, how can i convert it into the recursive function in dfs?