POJ 3624チャームブレスレット(01リュックサックテンプレートのタイトル)

制限時間:  1000ミリ秒   メモリの制限:  65536kも
合計提出:  52318   受け入れ:  21912

説明

ベッシーはモールの宝石店に行ってと魅力のブレスレットをスパイしています。もちろん、彼女はから可能な限り最高の魅力とそれを埋めるしたい  N(1≤  N  3402≤)利用できる魅力。各魅力  I  供給するリストには、量を有する  W I  (1≤  W iが  400以下)、 '望ましさ'因子  D I  (1≤  Dは、iが  100以下)、最も一度に使用することができます。ベッシーはその重量以上のものではありません魅力のブレスレットをサポートすることができます  Mを  (1≤  M  12880≤)。

制約とその重みと望まし評価と魅力のリストとしてその重量制限を考えると、評価の可能な最大合計を推論します。

入力

* 1行目:二スペースで区切られた整数:  N  および  M
*行2 .. N +1は:ライン  I 1は、説明の魅力  I  2スペースで区切られた整数で:  W I  と  DのI

出力

* 1行目:重量の制約与え実現することができる魅力desirabilitiesの最大の和であり、単一の整数

サンプル入力

4  6 
1  4 
2  6 
3  12 
2  7

サンプル出力

23

ACコード(テンプレートのタイトル)

書式#include <cstdioを> 
する#include <CStringの> 
の#include <アルゴリズム> 使用して名前空間はstdを、const int型の N = 13000 ;
INT DP [N]。
int型 S、N。// 背包容积和物品数量構造体シング
{ int型、W。
    int型のV; 
}リスト[ 3405 ]。無効INITを()
{ ためint型 I = 0 ; iが= Sを<; I ++)は、DP [I] = 0 ; 
} ボイドパッケージ()
{ INT

 

 


    


    


    I = 0 ; 私は、n <; 私は++ 
    { 
        ためINT J = S; J> =リスト[i]は.W; j-- 
        { 
            DP [J] = MAX(DP [J]、DP [J -リスト[i]が.W] + リスト[I] .V)。
        } 
    } 
} 

int型のmain()
{ 
    scanf関数(" %D%dの"、&​​N、&S)。
    以下のためにint型私= 0 ; iがN <; I ++)はscanf関数(" %D%D "、&リスト[i]が.W、&リスト[I] .V)。
    その中に(); 
    パッケージ(); 
    printf(" %dの、DP [S]);
     戻り 0 ; 
}

おすすめ

転載: www.cnblogs.com/yun-an/p/11105955.html