POJ 1579 Function Run Fun
2014-03-09 11:05
337 查看
原题地址:http://poj.org/problem?id=1579;
题目大意:给你一个递归式,计算给定数字的值。如果直接实现的话,会TLE.
这个题目我刚看的的时候,把题目描述中的"if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns:
1
if a > 20 or b > 20 or c > 20, then w(a, b, c) returns:
w(20, 20, 20) "的or硬是想成了and,以至于没有思路。看了一下别人的题解,才知道。但在实现的时候,应该是打表,又写成了递归调用函数。。。
思路:简单的动态规划,直接打表,开一个三维数组,将(0,0,0)~(20,20,20)间的数都打在表中,就OK了
题目大意:给你一个递归式,计算给定数字的值。如果直接实现的话,会TLE.
这个题目我刚看的的时候,把题目描述中的"if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns:
1
if a > 20 or b > 20 or c > 20, then w(a, b, c) returns:
w(20, 20, 20) "的or硬是想成了and,以至于没有思路。看了一下别人的题解,才知道。但在实现的时候,应该是打表,又写成了递归调用函数。。。
思路:简单的动态规划,直接打表,开一个三维数组,将(0,0,0)~(20,20,20)间的数都打在表中,就OK了
#include #include int arr[30][30][30];//开一个三维数组,用来打表 //函数w用来给定三维数组下标得到该元素的值 int w(int a,int b,int c) { if((a <= 0)||(b <= 0)||(c <= 0)) return 1; if((a < b)&&(b < c)) return arr[a][b][c-1]+arr[a][b-1][c-1]-arr[a][b-1][c]; return arr[a-1][b][c] + arr[a-1][b-1][c] + arr[a-1][b][c-1] - arr[a-1][b-1][c-1]; } int main() { int i,j,k; int x,y,z;//保存输入的三个数字 for(i = 0;i < 21;i++)//三层for循环,打表 { for(j = 0;j < 21;j++) { for(k = 0;k < 21;k++) { arr[i][j][k] = w(i,j,k); } } } while(scanf("%d%d%d",&x,&y,&z) != EOF) { if(x == -1 && y == -1 && z == -1) break; if(x < 0 || y < 0 || z < 0) printf("w(%d, %d, %d) = %d\n",x,y,z,arr[0][0][0]); else if(x > 20 || y > 20 || z > 20) printf("w(%d, %d, %d) = %d\n",x,y,z,arr[20][20][20]); else printf("w(%d, %d, %d) = %d\n",x,y,z,arr[x][y][z]); } return 0; }
相关文章推荐
- poj 1579 Function Run Fun(记忆化搜索)
- POJ:1579 Function Run Fun(递归转换+打表)
- poj - 1579 Function Run Fun 【dp】
- poj-1579-Function Run Fun(记忆化搜索)
- POJ 1579-Function Run Fun(记忆化搜索)
- 记忆化搜索:POJ1579-Function Run Fun(最基础的记忆化搜索)
- POJ 1579/hrbust 1029/哈理工oj 1029 Function Run Fun【记忆化搜索】
- poj 1579 Function Run Fun 递归
- POJ 1579 Function Run Fun(记忆化搜索)
- POJ 1579【Function Run Fun】
- poj 1579 Function Run Fun 记忆化搜索
- POJ 1579 Function Run Fun 笔记
- poj1579——Function Run Fun
- poj - 1579 - Function Run Fun(记忆化搜索)
- POJ1579:Function Run Fun(记忆化)
- POJ1579(Function Run Fun)
- POJ 1579 Function Run Fun【记忆化搜索】
- POJ 1579 Function Run Fun【记忆化搜索】
- POJ 1579 Function Run Fun 记忆化递归
- POJ 1579 Function Run Fun【递归转循环】