又見01揹包(01揹包題目3)

2021-07-02 07:43:05 字數 1086 閱讀 2915

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3

描述

有n個重量和價值分別為wi 和 vi 的 物品,從這些物品中選擇總重量不超過 w 

的物品,求所有挑選方案中物品價值總和的最大值。

1 <= n <=100

1 <= wi <= 10^7

1 <= vi <= 100

1 <= w <= 10^9

輸入多組測試資料。

每組測試資料第一行輸入,n 和 w ,接下來有n行,每行輸入兩個數,代表第i個物品的wi 和 vi。

輸出滿足題意的最大價值,每組測試資料佔一行。

樣例輸入

4 5

2 31 2

3 42 2

樣例輸出

7

首先這道題不能當做普通的01揹包問題,因為w <= 10^9,開不了,那麼大的陣列,肯定有其他的思路,觀察一下

這段話來自:

#include #include #include #include using namespace std;

const int maxn = 105;

const int inf = 0x3f3f3f3f;

int n, w, summount;

int w[maxn], v[maxn];

int dp[maxn*maxn];

inline int input()

int main()

for(int i=0;i<=sum;i++)

dp[i]=inf;

dp[0]=0;

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

for(int j=sum;j>=v[i];j--)

for(int i=sum;i>=0;i--)

if(dp[i]<=w)

}return 0;

}

此**來自:

又見01揹包

問題 f 又見01揹包 時間限制 1 sec 記憶體限制 128 mb 提交 4 解決 4 提交 狀態 討論版 題目描述 有n個重量和價值分別為wi 和 vi 的 物品,從這些物品中選擇總重量不超過 w 的物品,求所有挑選方案中物品價值總和的最大值。1 n 100 1 wi 10 7 1 vi 10...

又見01揹包

描述 有n個重量和價值分別為wi 和 vi 的 物品,從這些物品中選擇總重量不超過 w 的物品,求所有挑選方案中物品價值總和的最大值。1 n 100 1 wi 10 7 1 vi 100 1 w 10 9 輸入 多組測試資料。每組測試資料第一行輸入,n 和 w 接下來有n行,每行輸入兩個數,代表第i...

又見01揹包

這道題是真的狗屎,按照一般思路寫狀態方程ac不了,換個思路寫才行,時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 有n個重量和價值分別為wi 和 vi 的 物品,從這些物品中選擇總重量不超過 w 的物品,求所有挑選方案中物品價值總和的最大值。1 n 100 1 wi 10 7...