提出 #67889585
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
/////////////////// メイン ///////////////////
int main () {
//////////////////// 入力 ////////////////////
int n;
cin >> n;
// w+sの値でソートしたいので、4つ組にする
vector<tuple<int,int,int,int>> a(n);
for (int i=0; i<n; i++) {
int w, s, v;
cin >> w >> s >> v;
a.at(i) = {w+s,w,s,v};
}
//////////////// 出力変数定義 ////////////////
long long result = 0;
//////////////////// 処理 ////////////////////
// w+sが小さい順にソートしておく
sort(a.begin(),a.end());
// DPテーブル
// dp.at(i).at(j)は、i番目まで使う場合の総重量jでの最大価値
vector<vector<long long>> dp(n+1,vector<long long>(get<0>(a.back())+1,-1e18));
dp.at(0).at(0) = 0;
// w+sが小さい順にDP
for (int i=0; i<n; i++) {
auto [ws,w,s,v] = a.at(i);
// とりあえず、それを使わない場合のを全部コピー
dp.at(i+1) = dp.at(i);
// 注目の荷物の上に載せられるやつパターン全部処理
for (int j=0; j<=s; j++) {
dp.at(i+1).at(j+w) = max(dp.at(i+1).at(j+w),dp.at(i).at(j)+v);
}
}
// 全部使う場合の任意の重さでの最大価値が答え
result = *max_element(dp.at(n).begin(),dp.at(n).end());
//////////////////// 出力 ////////////////////
cout << result << endl;
//////////////////// 終了 ////////////////////
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | X - Tower |
| ユーザ | wightou |
| 言語 | C++ 23 (gcc 12.2) |
| 得点 | 100 |
| コード長 | 1519 Byte |
| 結果 | AC |
| 実行時間 | 89 ms |
| メモリ | 163492 KiB |
ジャッジ結果
| セット名 | All | ||
|---|---|---|---|
| 得点 / 配点 | 100 / 100 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| All | 0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17, 1_18, 1_19, 1_20 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 0_00 | AC | 1 ms | 3532 KiB |
| 0_01 | AC | 1 ms | 3492 KiB |
| 0_02 | AC | 1 ms | 3732 KiB |
| 0_03 | AC | 1 ms | 3540 KiB |
| 1_00 | AC | 1 ms | 3604 KiB |
| 1_01 | AC | 89 ms | 163492 KiB |
| 1_02 | AC | 5 ms | 11004 KiB |
| 1_03 | AC | 2 ms | 3560 KiB |
| 1_04 | AC | 2 ms | 3708 KiB |
| 1_05 | AC | 1 ms | 3684 KiB |
| 1_06 | AC | 2 ms | 3996 KiB |
| 1_07 | AC | 2 ms | 5208 KiB |
| 1_08 | AC | 4 ms | 7920 KiB |
| 1_09 | AC | 9 ms | 18452 KiB |
| 1_10 | AC | 24 ms | 47836 KiB |
| 1_11 | AC | 80 ms | 155248 KiB |
| 1_12 | AC | 44 ms | 81320 KiB |
| 1_13 | AC | 43 ms | 81292 KiB |
| 1_14 | AC | 44 ms | 81292 KiB |
| 1_15 | AC | 43 ms | 81492 KiB |
| 1_16 | AC | 44 ms | 82072 KiB |
| 1_17 | AC | 45 ms | 83372 KiB |
| 1_18 | AC | 46 ms | 88332 KiB |
| 1_19 | AC | 53 ms | 101628 KiB |
| 1_20 | AC | 82 ms | 159500 KiB |