01揹包 優化之前,之後

2021-09-25 09:58:18 字數 1057 閱讀 1613

塗奧最近迷上了吃雞,房間有n個配件,每個配件有c(c<=1e3)的重量和v(v<=1e3)的價值,哇,塗奧撿了乙個2級包,容量為s,所以塗奧最多當多肥的快遞員呢?

input

輸入的第一行是t, 表示有一共要打t場比賽.

每組資料由三行組成.

第1行包含兩個整數n和s 第2行包含n個整數, 表示每乙個配件的價值. 第3行包含n個整數, 表示每個配件的重量.

output

對每一組資料, 輸出塗奧可以多肥.

sample input

1

10 10

1 3 5 7 9 11 13 15 17 19

19 17 15 13 11 9 7 5 3 1

sample output

51
優化之前:

#include

#include

#include

#include

#include

using namespace std;

const int maxn=1010;

int wi[maxn],ve[maxn],a,n,v,dp[maxn][maxn];

int main()

for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)

}printf("%d\n",dp[n][v]);

}return 0;

}優化之後:

#include

#include

#include

#include

#include

using namespace std;

const int maxn=1010;

int wi[maxn],ve[maxn],a,n,v,dp[maxn][maxn];

int main()

for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)

}printf("%d\n",dp[v]);

}return 0;

}

01揹包及其優化

動態規劃是解決變成問題的一種重要思想,而揹包則是動態規劃的一種。揹包問題 給你乙個容量為v的揹包以及一些具有價值wi和體積vi的一些物品,要你求出揹包所能裝的最大價值。解決方法 定義乙個陣列f i v 用來統計各種情況下,揹包所能裝的最大價值,其中,i代表當前只提供前i個物品給你選擇,v表示當前只提...

Music Problem 01揹包優化

一道很不錯的題目,綜合了多個知識點。題意 給你n個數,判斷能否在這n個數中選一些數組成3600的倍數。先給這個題的一般形式。給你n個數,判斷能否在這n個數中選一些數組成m的倍數。1 n 1e6,2 m 1e3 然後我們可以發現乙個01揹包的解法 時間複雜度 o n m 狀態 dp i j 表示從1到...

01揹包之空間優化

前言 上篇suibi寫到了01揹包的二維陣列做法 不知道的戳這 可是空間太大了,如果出題人有意,那你就 怎麼辦呢?那咱們就用一維陣列來存吧。includeusing namespace std int bag,n,v 101 w 101 dp 1001 int main cout變數同上。同樣列舉每...