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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态规划6个题目总结比较

發(fā)布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划6个题目总结比较 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

對前面幾道題目做一下總結(jié)。

問題枚舉多階段限制條件目標(biāo)值
0-1背包每種物品:放/不放每種物品一個階段不能超過總重量w放完索引物品后,總重量最大
雙11每種物品:買/不買每種物品一個階段w<=總價格<3w放完索引物品后,總價格是大于w的最小值
矩陣最短路徑長度每個位置移動的方向:向下/右每個位置一個階段到達(n-1,n-1),最短路徑長度
最長遞增子序列每個元素是否在遞增子序列中:加/不加以第0個元素結(jié)尾;
以第1個元素結(jié)尾

以第n-1個元素結(jié)尾
考察完數(shù)組所有元素,選擇長度最長的
萊文斯坦編輯距離當(dāng)前比較的兩個字符不相同時候的處理方式:添加/刪除/替換字符的位置:0,1,2…考察完數(shù)組所有字符,選擇編輯距離最短的
硬幣找零符合條件不同幣值的硬幣:第0種、第1種…支付1元、2元…w元支付w元,最少硬幣數(shù)量
問題狀態(tài)轉(zhuǎn)移表維度狀態(tài)轉(zhuǎn)移表值狀態(tài)轉(zhuǎn)移方程答案
0-1背包(i,cw)
i:第i個物品
cw:當(dāng)前總重量
true/false:能否達到那個重量state[n-1][j]=true,j最大
雙11(i,presum)
i:第i個物品
cw:當(dāng)前總價格
true/false:能否達到那個價格state[n-1][j]=true,j>=w,且最小
矩陣最短路徑長度(i,j)
i:第i行
j:第j列
到達(i,j)的最短路徑長度min_dist(i,j)=matrix[i][j]+min(min_dist(i-1,j-1),min_dist(i-1,j))min_dist(n-1,n-1)
最長遞增子序列(i)
i:以第i個元素結(jié)尾
以第i個元素結(jié)尾的最長遞增子序列長度max_lis(i)=max(max_lis(j))+1
j=0,1,2…i-1,a[i]>a[j]
max_lis(i)的最大值,i=0,1,2…n-1
萊文斯坦編輯距離(i,j) i:比較字符a[i]
j:比較字符b[j]
最少編輯次數(shù)a[i]=b[j],min_edit=min(min_edist(i-1,j-1),min_edist(i-1,j)+1,min_edist(i,j-1)+1)
a[i]!=b[j],min_edit=min(min_edist(i-1,j-1),min_edist(i-1,j),min_edist(i,j-1)+1)+1
min_edist(m-1,n-1)
m:a字符串的長度,n:b字符串的長度
硬幣找零(x) x:已選擇硬幣總和最少硬幣個數(shù)F(i)=min(F(x-cic_ici?))+1
i=0,1,2,…n-1,x-cic_ici?>=0
F(w)

根據(jù)表格回答以下問題。

1 目標(biāo)狀態(tài)與目標(biāo)值是什么?
根據(jù)題目回答。
  考察完所有物品;放入物品重量最大。
  到達位置(n-1,n-1);最短路徑長度。
  考察完最后一個元素;最長遞增子序列長度。
  支付w元;最少應(yīng)比數(shù)量。
  兩個字符串按位置,字符比較完成;最少編輯次數(shù)。
  
2 多階段決策問題,按照什么分階段?
按照目標(biāo)狀態(tài)分階段。
  考察完所有物品,最大重量。那就按照物品分階段。
  到達(n-1,n-1)時的最短路徑長度,那就按照所在位置分階段。
  考察完數(shù)組最后一個元素后的最長遞增子序列長度,那就按數(shù)組中每一個元素分階段。
  考察完所有物品后總價格最低,那就按照物品分階段。
  支付w元時的最少硬幣數(shù)量,那就按照支付w-1、w-2…分階段。
  考察完兩個字符串所有字符之后的最小編輯次數(shù),那就按照字符位置分階段。

3 狀態(tài)表的維度和值是什么?
狀態(tài)表的維度一般就是分階段的維度。
  按照物品分階段,狀態(tài)表維度是物品所在下標(biāo)。
  按照矩陣位置分階段,狀態(tài)表維度就是矩陣位置的橫縱坐標(biāo)。
  按照支付多少元分階段,狀態(tài)表維度就是支付總額。
  按照字符位置分階段,狀態(tài)表維度就是字符所在位置的下標(biāo)。
  特例:0-1背包問題,因為重量是限制條件,狀態(tài)表維度是物品下標(biāo)和重量。
狀態(tài)表的值一般就是目標(biāo)值。
  目標(biāo)值是最少編輯次數(shù),狀態(tài)表的值就是最少編輯次數(shù)。
  目標(biāo)值是硬幣最少數(shù)量,狀態(tài)表的值就是硬幣最少數(shù)量。
  特例:0-1背包問題,因為重量是限制條件,狀態(tài)表的值true/false表示能不能達到某個重量。

4 狀態(tài)轉(zhuǎn)移方程是按照什么列出的?
狀態(tài)轉(zhuǎn)移方程是按照業(yè)務(wù)條件列出的。
  按照前進方向
  按照硬幣幣值
  按照字符相同,不同時候的處理方式

總結(jié)

以上是生活随笔為你收集整理的动态规划6个题目总结比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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