博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态规划(制表法)模板及应用
阅读量:4641 次
发布时间:2019-06-09

本文共 944 字,大约阅读时间需要 3 分钟。

  • int cache[100][100] 初始化为全体为 -1,这样在 cache 中存储的可以是其他任意非负整数,也可以是布尔类型 0/1 (true/false),

1. 模板

int cache[2500][2500];                    // 初始化为 -1,memset(cache, -1, sizeof(cache));int someObscureFunction(int y, int x){    if (...) return ...;    int& ret = cache[y][x];                        // 返回的是引用类型,这样当后续对 ret 的修改也会直接反应在 cache 里。                        // 后面递归时调用自身得到的值都要赋给 ret    if (ret != -1) return ret;    ...    return ret;}int main(int, char**){    memset(cache, -1, sizeof(cache));    return 0;}

2. 应用举例

  • 棋盘类游戏,起点在左上角,棋盘每一个位置上标注的是在该点能向右和向下走动的距离,问其能否到达最右下角。

    int n;int board[100][100];int cache[100][100];int jump_dp(int y, int x){    if (y >= n || x >= n) return cache[y][x] = 0;    if (y == n-1 && x == n-1) return cache[y][x] = 1;    int& ret = cache[y][x];    if (ret != -1) return ret;    int jmpSz = board[y][x];    return cache[y][x] = jump_dp(y+jmpSz, x) || jump_dp(y, x+jmp_sz);}

转载于:https://www.cnblogs.com/mtcnn/p/9423861.html

你可能感兴趣的文章
Unix和Linux下C语言学习指南
查看>>
linux指令
查看>>
linux下面升级 Python版本并修改yum属性信息
查看>>
局域网内通讯APP
查看>>
Unity Shader 图片流光效果实现(纯计算方式)
查看>>
POJ 2002 Squares
查看>>
Java 内存分配
查看>>
ObjectDataSource控件执行Delete操作时,出现“未能找到带参数的非泛型方法”的解决方案...
查看>>
Ubuntu17.10 React Native 环境搭建
查看>>
Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结
查看>>
jQuery-2.1.4.min.js:4 Uncaught TypeError: Illegal invocation
查看>>
jvm-监控指令-jdump
查看>>
maven安装与配置
查看>>
偶记:mysql5.7的官方doc也有错误啊:写的是vc runtime 2010,但实际上必须是 vc runtime 2013。坑...
查看>>
费马小定理,欧拉定理,指数循环节
查看>>
数据类型以的相互转化及赋值操作符,常用数学函数
查看>>
React-Redux之API
查看>>
bzoj千题计划266:bzoj4872: [六省联考2017]分手是祝愿
查看>>
jquery显示隐藏操作
查看>>
JAVA基础-数组
查看>>