poj 1579 Function Run Fun 倒不是很难,但我从中学到了一个重要的编程技巧——记忆化递归搜索
代码如下:
int dfs(int a,int b,int c) /*记忆化递归搜索
更高效的搜索 */ */
{
if(a <= 0 || b <= 0 || c <= 0)
return w[a][b][c] = 1; /*用w[][][] 保存 状态 ,可极大的减少搜索量*/
if(w[a][b][c] >= 0)
return w[a][b][c];
if(a < b && b < c)
return w[a][b][c] = dfs(a, b, c-1) + dfs(a, b-1, c-1) - dfs(a, b-1, c);
return w[a][b][c] = dfs(a-1, b, c) + dfs(a-1, b-1, c) + dfs(a-1, b, c-1) - dfs(a-1, b-1, c-1);
}