1. 程式人生 > >01揹包-02 小P尋寶記——粗心的基友

01揹包-02 小P尋寶記——粗心的基友

小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;
}