提出 #58261040
ソースコード 拡げる
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 3e3 + 10;
const ll inf = 1e10;
int n, W;
int w; ll v;
vector<ll> rec[N];
priority_queue <ll, vector<ll>, less<ll> > pq;
ll f[N]; // f(i,j) 考虑小于等于 i 的权值(滚动数组)中,容量为 j 的最大价值
ll g[N]; // 在每一组中,选择 i 个物品的最大价值
int main(){
cin >> n >> W;
for(int i = 1; i <= n; i++){
cin >> w >> v;
rec[w].push_back(v); // 把价值按照权值分组
}
for(int i = 1; i <= W; i++){
if(!rec[i].size()) continue;
while(!pq.empty()) pq.pop();
for(auto j : rec[i]){
pq.push(j - 1);
}
for(int j = 1; j <= W / i; j++){
g[j] = pq.top();
pq.pop();
pq.push(g[j] - 2);
g[j] += g[j - 1];
}
for(int j = W; j >= i; j--){
for(int k = 1; k <= j / i; k++){
f[j] = max(f[j], f[j - k * i] + g[k]);
}
}
}
cout << f[W];
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Knapsack with Diminishing Values |
| ユーザ | chenwenmo |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 550 |
| コード長 | 941 Byte |
| 結果 | AC |
| 実行時間 | 25 ms |
| メモリ | 3800 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 550 / 550 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 02_handmade_01.txt, 02_handmade_02.txt, 02_handmade_03.txt, 02_handmade_04.txt, 02_handmade_05.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_01.txt | AC | 1 ms | 3560 KiB |
| 00_sample_02.txt | AC | 1 ms | 3432 KiB |
| 00_sample_03.txt | AC | 1 ms | 3476 KiB |
| 01_random_01.txt | AC | 8 ms | 3608 KiB |
| 01_random_02.txt | AC | 8 ms | 3608 KiB |
| 01_random_03.txt | AC | 8 ms | 3740 KiB |
| 01_random_04.txt | AC | 8 ms | 3664 KiB |
| 01_random_05.txt | AC | 8 ms | 3800 KiB |
| 01_random_06.txt | AC | 1 ms | 3492 KiB |
| 01_random_07.txt | AC | 8 ms | 3568 KiB |
| 01_random_08.txt | AC | 13 ms | 3696 KiB |
| 01_random_09.txt | AC | 13 ms | 3600 KiB |
| 01_random_10.txt | AC | 1 ms | 3528 KiB |
| 01_random_11.txt | AC | 8 ms | 3588 KiB |
| 01_random_12.txt | AC | 3 ms | 3568 KiB |
| 01_random_13.txt | AC | 13 ms | 3700 KiB |
| 01_random_14.txt | AC | 13 ms | 3576 KiB |
| 01_random_15.txt | AC | 8 ms | 3592 KiB |
| 01_random_16.txt | AC | 2 ms | 3528 KiB |
| 01_random_17.txt | AC | 3 ms | 3504 KiB |
| 01_random_18.txt | AC | 12 ms | 3544 KiB |
| 01_random_19.txt | AC | 13 ms | 3652 KiB |
| 01_random_20.txt | AC | 11 ms | 3588 KiB |
| 01_random_21.txt | AC | 2 ms | 3556 KiB |
| 01_random_22.txt | AC | 2 ms | 3560 KiB |
| 01_random_23.txt | AC | 17 ms | 3556 KiB |
| 01_random_24.txt | AC | 17 ms | 3640 KiB |
| 01_random_25.txt | AC | 2 ms | 3548 KiB |
| 01_random_26.txt | AC | 4 ms | 3608 KiB |
| 01_random_27.txt | AC | 3 ms | 3572 KiB |
| 01_random_28.txt | AC | 17 ms | 3532 KiB |
| 01_random_29.txt | AC | 18 ms | 3552 KiB |
| 01_random_30.txt | AC | 7 ms | 3556 KiB |
| 01_random_31.txt | AC | 5 ms | 3512 KiB |
| 01_random_32.txt | AC | 2 ms | 3588 KiB |
| 01_random_33.txt | AC | 17 ms | 3564 KiB |
| 01_random_34.txt | AC | 18 ms | 3592 KiB |
| 01_random_35.txt | AC | 2 ms | 3472 KiB |
| 01_random_36.txt | AC | 7 ms | 3648 KiB |
| 01_random_37.txt | AC | 14 ms | 3708 KiB |
| 01_random_38.txt | AC | 5 ms | 3636 KiB |
| 01_random_39.txt | AC | 25 ms | 3664 KiB |
| 01_random_40.txt | AC | 6 ms | 3528 KiB |
| 01_random_41.txt | AC | 4 ms | 3588 KiB |
| 01_random_42.txt | AC | 2 ms | 3616 KiB |
| 01_random_43.txt | AC | 16 ms | 3640 KiB |
| 01_random_44.txt | AC | 21 ms | 3692 KiB |
| 01_random_45.txt | AC | 5 ms | 3588 KiB |
| 01_random_46.txt | AC | 5 ms | 3596 KiB |
| 01_random_47.txt | AC | 3 ms | 3572 KiB |
| 01_random_48.txt | AC | 2 ms | 3640 KiB |
| 01_random_49.txt | AC | 22 ms | 3636 KiB |
| 01_random_50.txt | AC | 2 ms | 3476 KiB |
| 02_handmade_01.txt | AC | 21 ms | 3672 KiB |
| 02_handmade_02.txt | AC | 1 ms | 3616 KiB |
| 02_handmade_03.txt | AC | 1 ms | 3588 KiB |
| 02_handmade_04.txt | AC | 5 ms | 3552 KiB |
| 02_handmade_05.txt | AC | 2 ms | 3516 KiB |