神奇的口袋
有乙個神奇的口袋,總的容積為40,用這個口袋可以變出一些物品,這些物品的體積分別為a[1],a[2],a[3]…a[n].john可以從這些物品中選擇一些,如果選出的物體的總體積為40,那麼利用這個神奇的口袋,john就可以得到這些物品。現在的問題是,john有多少種不同的選擇物品的方式。
遞推的做法
#include
#define volume_max 40
using
namespace std;
int ways[volume_max+1]
;int objects=
;int
main()
//易錯點
ways[0]
=1;for
(int i=
1;icout<
}
遞迴的做法#include
#define volume_max 40
#define object_max 40
using
namespace std;
int objects=
;int
count
(int volume,
int num)
intmain()
0-1揹包問題
有n件物品和乙個容積為m的揹包,第i件物品的體積w[i],價值為d[i].求解將哪些物品裝入揹包可以使得價值總和最大。每種物品只有一件,可以選擇放或者不放(n<=3500,m<=13000)
在這裡插入**片
```#include
#include
#define volume_max 40
using
namespace std;
int most_expensive[volume_max+1]
;int objects=
;int prices=
;int
main()
most_expensive[0]
=0;for
(int i=
1;icout<
}
演算法學習 動態規劃練習(二)
1.1 題目介紹 62.不同路徑 1.2 解題思路 計數型動態規劃 最後一步 最右下角的座標假設為 m,n 則假設走到 m,n 所有可能的路徑為f m n 子問題 走到 m,n 的前一步有兩種可能一種是 m 1,n 一種是 m,n 1 狀態轉移方程 f m n f m 1 n f m n 1 初始化...
演算法學習 動態規劃
動態規劃是解決多階段決策過程最優化的一種方法。對於離散問題,解析數學無法施展,動態規劃則成為非常有效的工具。兩個弱點 1.得出目標函式方程後,尚無統一的處理方法,必須根據具體問題的性質結合相應的數學技巧來求解 2.維數障礙。動態規劃模型的分類 根據決策過程的時間參量是離散的還是連續的變數 1.離散 ...
演算法學習 動態規劃實踐
完成日期 2017.10.26 1.實踐題目 數字三角形 2.問題描述 給定乙個由 n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形 的頂至底的一條路徑 每一步可沿左斜線向下或右斜線向下 使該路徑經過的數字總和最大。3.演算法描述 1 首先該問題有最優子結構和重疊子問題的性質,因...