Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
143059 | 梁乃元 | 分组背包 | C++ | 通过 | 100 | 1 MS | 2208 KB | 640 | 2024-04-12 13:36:33 |
# include<bits/stdc++.h> using namespace std ; int V , N , w [101] [1001] , f [101] [1001] , stone [111] [1001] , K ; int main ( ) { cin >> V >> N ; for( int i = 1 ; i <= N ; i ++ ) { int a , b , c ; cin >> a >> b >> c ; stone [c] [++ stone [c] [0]] = a ; w [c] [stone [c] [0]] = b ; K = max ( K , c ) ; } for ( int k = 1 ; k <= K ; k ++ ) { for ( int i = 0 ; i <= stone [k] [0] ; i ++ ) { for ( int j = V ; j >= stone [k] [i] ; j -- ) { f [k] [j] = max ( f [k - 1] [j] , max ( f [k - 1] [j - stone [k] [i]] + w [k] [i] , f [k] [j] ) ) ; } } } cout << f [K] [V] ; return 0 ; }