1 #include2 #include 3 int dp[20][20][20]; 4 int w(int a,int b,int c){ 5 if(a<=0||b<=0||c<=0){ 6 return 1; 7 } 8 if(a>20||b>20||c>20){ 9 return w(20,20,20);10 }11 if(dp[a][b][c]){ //查找数组中是否有值,如果有,直接返回数组的值12 return dp[a][b][c];13 }14 if(a
记忆化搜索:
求解的过程中按着自顶向下的顺序,但每求一个解的状态,就把他的解保存下来,以后再次遇到这个解的时候,就不必重新求解了。