dynamic programming 动态规划
method for problem solving used in math and computer science in which large problems are broken down into smaller problems.