-
大小: 28KB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2021-01-10
- 標(biāo)簽: 01背包??動態(tài)規(guī)劃??c/c++??大量注釋??
資源簡介
01背包問題解決方法不少,動態(tài)規(guī)劃是其中之一,動態(tài)規(guī)劃的問題解題思路都差不多(一些淺見),基本要素是最優(yōu)子結(jié)構(gòu)性質(zhì),子問題重疊性質(zhì),自底向上的求解方法。只要了解了基本要素,那么這種題型也會更好理解。本題有不少注釋,便于讀者閱讀。">01背包問題解決方法不少,動態(tài)規(guī)劃是其中之一,動態(tài)規(guī)劃的問題解題思路都差不多(一些淺見),基本要素是最優(yōu)子結(jié)構(gòu)性質(zhì),子問題重疊性質(zhì),自底向上的求解方法。只要了解了基本要素,那么這種題型也會更好理解。本題? [更多]
代碼片段和文件信息
#include
#include
int?C[200][200];//前i個物品裝入容量為j的背包中獲得的最大價值
int?max(int?aint?b)??//返回較大值
{
????if(a?>=?b)
????????return?a;
????else?return?b;
}
int?KnapSack(int?nint?w[]int?v[]int?x[]int?W)??//物體個數(shù)n?物品重量w[]物品價值v[],物品選擇狀態(tài)x[]背包容量W
{
????int?ij;
????//接下來四行是初始左上角為0
????for(i?=?0;?i?<=?n;?i++)
????????C[i][0]?=?0;
????for(j?=?0;?j?<=?W;?j++)
????????C[0][j]?=?0;
????for(i?=?0;?i?<=?n?-?1;?i++)?//選擇貨物
????{
????????for(j?=?0;?j?<=?W;?j++)?//選擇容量
????????{
????????????if(j?????????????????C[i][j]?=?C[i?-?1][j];
????????????else
????????????????C[i][j]?=?max(C[i?-?1][j]?C[i?-?1][j?-?w[i]]?+?v[i]);
????????}
????}
????j?=?W;??//令j初始為容量
????for(i?=?n?-?1;?i?>=?0;?i--)??//找回最優(yōu)解過程
????{
????????if(C[i][j]?>?C[i?-?1][j])??//比
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????79506??2013-11-05?16:47??KnapSack\bin\Debug\KnapSack.exe
?????文件???????1059??2013-11-05?16:10??KnapSack\KnapSack.cbp
?????文件????????242??2013-11-05?16:47??KnapSack\KnapSack.layout
?????文件???????2182??2013-11-05?16:47??KnapSack\main.cpp
?????文件???????4789??2013-11-05?16:47??KnapSack\obj\Debug\main.o
?????目錄??????????0??2013-11-05?16:48??KnapSack\bin\Debug
?????目錄??????????0??2013-11-05?16:48??KnapSack\obj\Debug
?????目錄??????????0??2013-11-05?16:48??KnapSack\bin
?????目錄??????????0??2013-11-05?16:48??KnapSack\obj
?????目錄??????????0??2013-11-05?16:48??KnapSack
-----------?---------??----------?-----??----
????????????????87778????????????????????10
評論
共有 條評論