【バックパック】P1156クラスガベージトラップ

1の#include <iostreamの>
 2の#include <アルゴリズム>
 3  使用して 名前空間STDを、
4  
5  int型の DP [ 101 ] [ 1001 ]。
6  
7  構造体RUB
 8  {
 9      int型、T、G、H。
10 } C [ 101 ]。
11  
12  ブールCMP(摩擦B、こする)
 13  {
 14      リターン <におけるBT。
15  }
 16  
17  のint main()の
 18  {
 19      INTD、G。
20      CIN >> D >> G。
21      のためにint型 I = 1 ; I <= G iが++ 22      {
 23          CIN >> C [i]は.T >> C [i]は.G >> C [I]・H。
24      }
 25      ソート(C + 1、C + G + 1 、CMP)。
26      DP [ 0 ] [ 0 ] = 10 27      のためにint型 I = 1を iが++; I <= G 28      {
 29          のためにINT J =0 ; J <= D; J ++ 30          {
 31              であれば(DP [I - 1 ] [J]> =のC [I] .T)
 32                  DP [I] [J] = MAX(DP [I]、[J]、DP [I- 1 ] [J] + C [I]・G)
33              であれば(j> = C [I]・H && DP [I - 1 ] [J - C [I]・H]> = C [i]は.T)
 34                  DP [I] [J] = MAX(DP [I]、[J]、DP [I - 1 ] [J - C [I]・H])。
35          }
 36      }
 37      INT MAXH = 0 38      INT MAXT = 0 39      INT私;
40      のために(i = 1 ; I <= G iは++ 41      {
 42          のためのint型 J = 0 J ++; J <= D 43          {
 44              であれば、C [i]が.T - (DP [I] [J] > = 0 45                  MAXH = MAX(MAXH、J)。
46              MAXT = MAX(MAXT、DP [I] [J])。
47          }
 48          であれば(MAXH> = D)
 49              ブレーク50      }
 51      であれば(MAXH> = D)
 52         COUT << C [i]は.T << ENDL。
53      他の
54          coutの<< MAXT << てendl;
55 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/thjkhdf12/p/11641141.html