POJ 1579 记忆化递归
来源:互联网 发布:淘宝开店人脸认证失败 编辑:程序博客网 时间:2024/05/22 06:25
大概题意就是一个简单递归,但Description最后一行中:
The problem is, if implemented directly, for moderate values of a, b and c (for example, a = 15, b = 15, c = 15), the program takes hours to run because of the massive recursion.
所以一开始以为是要把DP过程优化,求教后获悉记忆化递归,其实是一个很简单的操作:把之前的每一个小问题的结果保存下来以方便下次直接调用,但在递归的过程中却可以节省大量的时间与资源。
Code:
#include <stdio.h>#include <string.h>int w[25][25][25];int f(int a,int b,int c){ if(a<=0||b<=0||c<=0) return 1; if(a>20||b>20||c>20) return w[20][20][20]=f(20,20,20); if(w[a][b][c]!=0) return w[a][b][c]; if(a<b&&b<c) return w[a][b][c]=f(a,b,c-1)+f(a,b-1,c-1)-f(a,b-1,c); return w[a][b][c]=f(a-1,b,c)+f(a-1,b-1,c)+f(a-1,b,c-1)-f(a-1,b-1,c-1);}int main(){ int a,b,c; while(scanf("%d%d%d",&a,&b,&c)&&(a!=-1||b!=-1||c!=-1)) { memset(w,0,sizeof(w)); printf("w(%d, %d, %d) = %d\n",a,b,c,f(a,b,c)); } return 0;}
- POJ 1579 记忆化递归
- POJ 1579 记忆递归
- 记忆化递归搜索(poj 1579)
- poj 1579 递归-记忆化搜索
- POJ 1579 Function Run Fun 记忆化递归
- POJ-1579-Function Run Fun-递归,记忆化搜索
- POJ 1579 Function Run Fun 记忆化递归
- POJ 1579-Function Run Fun(记忆化搜索-递归)
- POJ 1088 递归+记忆化搜索
- POJ 1088 递归+记忆化搜索
- poj 1579 Function Run Fun(把一个递归函数变快,用数组 记忆化处理)
- poj 1191 棋盘分割(记忆化dp+递归)
- POJ 1088 滑雪(递归+记忆化搜索)
- POJ 1088 滑雪 (递归+记忆化搜索)
- POJ-1088~~~~~滑雪(递归+记忆化搜索)
- poj 1191棋盘分割(递归dp, 记忆化搜索)
- poj 1579(记忆化搜索)
- 记忆化递归
- Oracle DB 在恢复目录中注册数据库
- 平衡二叉树 AVL 的插入节点后旋转方法分析
- VC 6.0 编译Debug和Release 版本库出现的问题?
- [039] 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页) .
- Quartz教程(二)- 深入讲解HelloWorld
- POJ 1579 记忆化递归
- 面向消息的中间件 (Message-Oriented Middleware, MOM)
- [040] 微信公众帐号开发教程第16篇-应用实例之历史上的今天 .
- ZOJ3696-A Simple Tree Problem 线段树
- 关于telnet连接tomcat方法
- 解决 ueditor表格在页面上不显示的问题
- Oracle DB 备份恢复目录
- 指针常量与常量指针
- 软件架构模式的种类