完成DP算法，未测试正确性