羅区P1757バベルグループのバックパック

トピックポータル

問題解決のアイデア:

バックパックのパケットコードが注釈付き。

ACコード:

1の#include <iostreamの>
 2の#include <cstdioを>
 3の#include < 設定 >
 4  
5  使用 名前空間STD。
6  
7  INTの N、M、Cの[ 1001 [W]、1001 ]、F [ 1001 ]、Z [ 1001 ]、p個の[ 1001 ]、S [ 1001 ] [ 1001 ]。
8  
9  INT メイン(){
 10      のscanf(" %d個の%のD "、&​​M、&N)
11      のためには、int型 i = 1 ; iが<= N; I ++){
 12          のscanf(" %D%D%D "、&​​C [i]は、&​​W [i]は、&Z [I])。
13          P [Z [i]は] ++ ;
14の          S [Z [i]は] [P [Z [I]]] = I。
15      }
 16      F [ 0 ] = 0 17      のためにINT O = 1 <; = N O ++ O)// 组数
18          のためにINT J = M; J => 1 ; j--)// 背包容量
19              のためにINT I = P [O] ; I> = 1 ; i--)//すべての記事の現在のセット
20は、                 IF(J> = C [S [O] [I])
 21は、                      F [J] = MAX(F [J]、F [JC [S [O] [I]]] + [W S [O] [I]);
 22である      のprintf(" %のD " ;、F [M])
 23が     戻り 0 ;
 24 }

 

おすすめ

転載: www.cnblogs.com/lipeiyi520/p/11616856.html