01揹包-02 小P尋寶記——粗心的基友
阿新 • • 發佈:2018-12-23
小P尋寶記 - 粗心的基友
時間限制:1000毫秒記憶體限制:65536 KiB
問題描述
這對好基友他們在經歷無數的艱難險阻後,終於找到了寶藏。無奈的是這一對好基友竟然是一樣的粗心,又忘記了帶一個大一點的包包,可惜啊,,選擇又出現了啊,,
已知包的體積是V,每種寶貝只有一個,寶貝的體積是圓周率,價值是無線。求出這對粗心的基友可以最多帶走價值多少的寶藏。
輸入
輸入資料有多組。
每組第一行有兩個正整數n(n <= 10000)和v(v <= 10000)分別表示n種寶貝和包的體積。
接下來ñ行,每行有兩個正整數六,無線網路。
分別表示每種寶藏的體積vi(vi <= 1000),價值wi(wi <= 1000)。
產量
這對基友所能帶走的最多的寶藏。
樣本輸入
5 10
1 5
2 4
3 3
4 2
5 1
樣本輸出
14
暗示
資源
XFL
ACcode:
#include <bits/stdc++.h> using namespace std; int a[10005],b[10005]; int main() { int m,n; int dp[10005]; while (cin>> n >> m) { memset(dp,0,sizeof(dp)); for (int i = 0;i < n; i++) cin>> a[i] >> b[i]; for (int i = 0; i < n; i++) { for (int j = m;j > 0; j--) { if (j >= a[i]) { dp[j] = max(dp[j],dp[j-a[i]]+b[i]); } } } cout<< dp[m] <<endl; } return 0; }