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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

动态规划-背包问题小结

發(fā)布時(shí)間:2025/4/5 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划-背包问题小结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 對(duì)于背包問題的動(dòng)態(tài)轉(zhuǎn)移方程:


當(dāng)前容量下裝滿背包有幾種方法: dp[j] += dp[j-nums[i]]

當(dāng)前容量下能否裝滿或者最多能裝多少: dp[j] = max(dp[j], dp[j-nums[i]]+nums[i])

當(dāng)前容量下裝滿的最大價(jià)值:dp[j] = max(dp[j], dp[j-weights[i]]+values[i]

當(dāng)前容量下裝滿所用物品的最小個(gè)數(shù):dp[j] = min(dp[j], dp[j-nums[i]]+1

2. 對(duì)于背包問題的初始化設(shè)置:


如果是裝滿背包有多少種方法: 全局初始化為0, dp[0]=1, 啥也不能裝也算一種方法

如果是否裝滿或者最多能裝多少: 全局初始化為0, dp[0] = 0, 0容量的背包不能裝物品

如果是裝滿的最大價(jià)值: 全局初始化為0, dp[0] = 0, 0容量背包不能裝物品

如果是裝滿所用物品的最小個(gè)數(shù): 全局初始化為float("intf"), dp[0]=0, 0容量沒法裝

3. 對(duì)于背包問題的遍歷順序:

1) 0-1背包問題:

正向遍歷物品, 逆向遍歷背包容量, 且必須先遍歷物品,后遍歷背包容量

2) 完全背包問題: 正向遍歷物品,正向遍歷背包容量

3) 如果不是求裝滿背包有幾種方法的累加題目, 這時(shí)候,先遍歷物品或者先遍歷背包容量都可, 我喜歡前一種

4) 如果是涉及到求裝滿背包有幾種方法的累加題目,分情況:


求組合數(shù), 也就是同一批物品,不管順序關(guān)系: 先遍歷物品,然后遍歷背包容量

求排列數(shù), 也就是同一批物品,管順序關(guān)系: 先遍歷背包容量,后遍歷物品

總結(jié)

以上是生活随笔為你收集整理的动态规划-背包问题小结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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