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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数位dp 模板

發(fā)布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数位dp 模板 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

板子

?? DP(pos,狀態(tài)變量...,限制布爾){if(pos==0)return 1;//一般每次執(zhí)行到這里時的數(shù)是要算入總結(jié)果的 不一定是1 根據(jù)題目確定if(!limit&&dp[對應(yīng)狀態(tài)]!=-1)return dp[對應(yīng)狀態(tài)]; //記憶化搜索int up = limit?d[pos]:9;//表示如果前面一位有限制 就說明這是擦著區(qū)間上界走的 需要返回d[pos] 如果沒有限制 說明沒臨界 返回9ll a=0;for(int i=0;i<=up;i++){if()...else if()...//針對不同的題目設(shè)置不同的變量記錄函數(shù)a+=(pos,狀態(tài)變量...,限制布爾&&i==d[pos]);//如果這兩個條件都有再傳遞}if(!limit)dp[狀態(tài)]=a;//已經(jīng)求出對應(yīng)狀態(tài)值下的結(jié)果了 記錄下來return a;}

所以 數(shù)位dp其實就是一種求解有關(guān)于l到r有多少個符合條件的數(shù)目類似的統(tǒng)計問題的解題思路
一遍遍數(shù)字枚舉太慢

不如我們根據(jù)條件枚舉數(shù)位
數(shù)位dp本質(zhì)上是記憶化搜索

我們需要在數(shù)位上進行遞推
把條件篩選融入到數(shù)位上的篩選
所以數(shù)位dp其實就是一種算法策略可以讓我們
記憶化地去搜索我們想要得到的數(shù)據(jù)結(jié)果

我們把這個數(shù)位給他拆開一位一位的枚舉
根據(jù)題目對應(yīng)的約束條件 設(shè)置記錄結(jié)構(gòu)
一般把對應(yīng)長度,其余位數(shù)符合什么什么條件的 并且沒有限制的數(shù)目記錄下來
以供我們之后搜到相同的狀態(tài)重復利用數(shù)據(jù)
降低搜索分支

總結(jié)

以上是生活随笔為你收集整理的数位dp 模板的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。