ロスは、パケットのバックパックのバックパックバレーP1757バベル値をグループ化します

トピックへのリンク:https://www.luogu.org/problem/P1757

最も基本的なバックパックパケット、ここでのコード

#include <ビット/ STDC ++ H.>
 使用して 名前空間STD;
 のconst  int型 MAXN = 1E5 + 10 ;
 int型 DP [ 1010 ];
 int型 A [ 1010 ]、B [ 1010 ]、C [ 1010 ]、D [ 1010 ]、F [ 1010 ] [ 1010 ];
 int型のmain(){
     int型 M、N-; CIN >> M >> N - ;
     int型 NUM = 0 ; //は、グループの数を保存
    するためのINT I = 1 ; I <= N; I ++は) { 
        scanfの(" %D%D%D"、&​​A [I]、&B [I]、&C [I]); 
        NUM = MAX(NUM、C [I]); 
        D [C [I] ++; // [I]グループC、項目数増加 
        ; F [C [I] [D [C [I]]] = I // シーケンス番号の最初の数字はグループの数である
    }
     のためにint型私は= 1 ;私は= NUMを<; Iを++ ){ // 基の数は、列挙
        のためにINT J> =、J = M 0 ; J、){
             int型 K = 1 ; K <= D [I]; K ++){ // の順次列挙グループIのいくつかの
                IF(jは> = [F [i]が[K])
                DP [J] = MAX(DP [J]、DP [JA [F [i]が[K]]] +B)[i]は[K] [F]。
            } 
        } 
    } 
    COUT << DP [M] << ENDL。
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/qingjiuling/p/11354869.html