日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态规划(制表法)模板及应用

發布時間:2023/12/18 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划(制表法)模板及应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 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 里。// 后面遞歸時調用自身得到的值都要賦給 retif (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

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的动态规划(制表法)模板及应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。