Submission #82001
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include<bits/stdc++.h> #define ll long long #define endl "\n" using namespace std; int main(){ ll n,mc,mw; cin >> n >> mc >> mw; //個数 価格限界 重さ限界 vector<ll> c(n+1),w(n+1),y(n+1); vector<vector<vector<ll>>> dp(n+1,vector<vector<ll>>(mc+1,vector<ll>(mw+1))); //i個まで買った時j円使った時重さがkであるときの最大のおいしさ for (ll i=1;i<=n;i++)cin >> c[i] >> w[i] >> y[i]; //価格 重さ 美味しさ //3次元dp開始 for (ll i=1;i<=n;i++){ for (ll j=1;j<=mc;j++){ for (ll k=mw;k>0;k--){ dp[i][j][k] = max({dp[i][j-1][k],dp[i][j][k-1],dp[i-1][j][k]}); if (j - c[i]>=0&&k - w[i]>=0){ dp[i][j][k] = max(dp[i][j][k] , dp[i-1][j-c[i]][k-w[i]] + y[i]); } } } } // for(ll i=0;i<=n;i++){ // cout << i << endl; // for(ll j=0;j<=mc;j++){ // for(ll k=0;k<=mw;k++){ // cout << dp[i][j][k] << " "; // } // cout << endl; // } // cout << c[i] << " " << w[i] << " " << y[i] << endl; // cout << endl; // } cout << dp[n][mc][mw] << endl; } |
ステータス
項目 | データ |
---|---|
問題 | 1888 - Knapsack3 |
ユーザー名 | DAI_0110 |
投稿日時 | 2024-12-14 12:04:46 |
言語 | C++17 |
状態 | Accepted |
得点 | 10 |
ソースコード長 | 1248 Byte |
最大実行時間 | 148 ms |
最大メモリ使用量 | 151792 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 3 / 3 | * |
2 | 小課題2 | 4 / 4 | input6.txt, input7.txt |
3 | 小課題1 | 3 / 3 | input1.txt, input2.txt, input3.txt, input4.txt, input5.txt |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # | ||
---|---|---|---|---|---|---|
input1.txt | AC | 28 ms | 604 KB |
1
|
3
|
|
input2.txt | AC | 19 ms | 548 KB |
1
|
3
|
|
input3.txt | AC | 19 ms | 604 KB |
1
|
3
|
|
input4.txt | AC | 32 ms | 1856 KB |
1
|
3
|
|
input5.txt | AC | 27 ms | 8600 KB |
1
|
3
|
|
input6.txt | AC | 26 ms | 5448 KB |
1
|
2
|
|
input7.txt | AC | 22 ms | 3440 KB |
1
|
2
|
|
input8.txt | AC | 25 ms | 3952 KB |
1
|
||
input9.txt | AC | 148 ms | 151792 KB |
1
|
||
input10.txt | AC | 40 ms | 28688 KB |
1
|