マーシュ湿地物語シリーズ - 念頭に置いて減量I(hdu4508) - 完全にバックパック

トピック:

   食料品については、中国の旧正月の幸せな事は1、ない食べることです! 
  しかし、女の子のための、カロリー(カロリー)が天敵ああです! 
  「ダウン山のように脂肪、脂肪が足の上に離れて行く、」真実、私はあなたがあまりにも多くの捕食者を作成しません、同時に食べて、彼女を幸せにし、彼女はレシピの開発に役立つことを願って精通シニア美し沼地沼地。 

  もちろん、あなたがレシピを作るために容易にするために、湿地湿地は、上記のあなたの毎日の食物リストを与えるカロリーの量、彼女は彼女の幸福の度合いにもたらすことができる食べ物を食べたい、と増加し、毎日を説明しています。

入力  

  テストケースの複数のセットを入力します。 
  データの各セットは、毎日、整数nと食品のリストを開始し、食品のn個の種類があります。 
  次のn本の食品の値を表す二つの整数a、bの線、幸福マーシュマーシュ(大きな値、より幸福)をもたらすことができ、Bは吸収され、この食品のカロリーを食べる湿地湿地を表します。 
  最後に整数mであり、沼地沼地がmを超えないように吸収カロリーの一日を表します。 

   [技術仕様] 
  1 .. 1 <= N - <= 100 
  2. 0 <= A、B <= 100000 
  3 .. 1 <= M <= 100000 
出力  

  各リストには、出力と同時に、吸収カロリーの量を満たす整数、幸福湿地湿地の最大値が利用可能。サンプル入力

3 
3 3 
7 7 
9 9 
10 
5 
1 
5 3 
10 3 
6 8 
7 5 
6

サンプル出力

10 
20

コード:

書式#include <cstdioを> 
する#include <CStringの> 
の#include <iostreamの>
 使用して 名前空間はstd;
CONST  INT MAXN = 110 int型の DP [ 100005 ]。
INT のmain()
{ 
    int型N、M、V [MAXN]、[MAXN] W。
    一方、(〜のscanf(" %d個"、&N)){ 
        memsetの(DP、0はsizeof (DP))。
        以下のためにint型私= 1 ; iが<= N; iが++ ){ 
            scanf関数(" %D%D "、&​​V [i]は、&W [I])。
        } 
        のscanf(" %dの"、&M)。
        以下のためにint型 i = 1 ; iは= N <; iは++ ){
             ためINT J = W [i]は、J <= Mであり、j ++ ){ 
                DP [J] = MAX(DP [J]、DP [JW [I ] + V [I])。
            } 
        } 
        のprintf(" %d個の\ n " 、DP [M])。
    } 
    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/LJHAHA/p/11264084.html