poj 1579 递归-记忆化搜索
来源:互联网 发布:淘宝用户名起名大全 编辑:程序博客网 时间:2024/05/18 23:52
直接递归会重复计算一些值,如题所述会花费很长时间。最好的方法就是用记忆化搜索,用数组将值记录下来,当搜到已经计算过的值时直接使用就行了,避免再一次递归计算,这样会节省很多时间。
代码如下:http://blog.csdn.net/non_cease/article/details/6817914
#include <iostream>using namespace std;const int size = 21;int map[size][size][size];void makeMap(){int a, b, c;for(a = 0; a < size; a++)for(b = 0; b < size; b++)for(c = 0; c < size; c++){if(a <= 0 || b <=0 || c <= 0)map[a][b][c] = 1;else if(a < b && b < c)map[a][b][c] = map[a][b][c-1] + map[a][b-1][c-1] - map[a][b-1][c];else map[a][b][c] = map[a-1][b][c] + map[a-1][b-1][c] + map[a-1][b][c-1] - map[a-1][b-1][c-1];}}int main(){int a, b, c, ans; makeMap();while(scanf("%d %d %d", &a, &b, &c) == 3){if(a == -1 && b == -1 && c == -1) break; if(a < 0 || b < 0 || c < 0)ans = 1;else if(a > 20 || b > 20 || c > 20)ans = map[20][20][20];else ans = map[a][b][c]; printf("w(%d, %d, %d) = %d\n", a, b, c, ans);}return 0;}
0 0
- 记忆化递归搜索(poj 1579)
- poj 1579 递归-记忆化搜索
- POJ-1579-Function Run Fun-递归,记忆化搜索
- POJ 1579-Function Run Fun(记忆化搜索-递归)
- POJ 1088 递归+记忆化搜索
- POJ 1088 递归+记忆化搜索
- POJ 1579 记忆化递归
- poj 1579(记忆化搜索)
- 递归+记忆化搜索
- POJ 1579 记忆递归
- POJ 1088 滑雪(递归+记忆化搜索)
- POJ 1088 滑雪 (递归+记忆化搜索)
- POJ-1088~~~~~滑雪(递归+记忆化搜索)
- poj 1191棋盘分割(递归dp, 记忆化搜索)
- 【记忆化搜索】POJ
- poj 1579(记忆化搜索)DP
- HDU 1331 poj 1579记忆化搜索
- POJ 1579(记忆化搜索)
- IntelliJ IDEA手工安装插件方法
- java二维码工具类,中间带LOGO的,很强大
- 英国监管机构向比特币抛出橄榄枝,管制环境更加宽松
- 关于Android内存泄漏的优秀文章
- H5页面快速搭建之高级字体应用实践
- poj 1579 递归-记忆化搜索
- Jupyter notebooks 安装与使用
- 比特币交易平台Kraken获得B轮融资
- java 集合类
- 1011 Oil Deposits
- HBase 默认配置
- Android杀死双进程应用
- jstl简单总结
- ArcGIS Runtime SDK for iOS(六) --- 空间几何分析与操作(中)