本题思维要点被全部题解一个显然代替,其实是不好的。
dp[i][j]代表前i个之和能够组成1-j且全部之和为j的最少数。
关于为什么 dp[i][j]=dp[i-1][k]+1
k>=i-1 j-i<=k<j,对于第一个范围,如果比这个范围小,比如i-2,那么我们新加入一个i,i-1就无法表示,而一旦我们的范围是k>=i-1时,i能被i表示,i+1能用之前表示出的1与i组合表示,直到j为止。能表示出j也就说明i-1+i>=j
i-1>=j-i
对于j-i<=k来说,一旦比j-i小,j-i-1例如,我们只能表示到j-i-1,再加上一个i连j都够不到,所以不可以。
所以这个简单的二维状态,其实蕴含了至少三层含义,不应该被一句显然带过