Submission #02473
ソースコード
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #include <iostream> #include <algorithm> #include <string> #include <vector> #include <list> #include <functional> #include <queue> #include <stack> #include <set> #include <map> #include <numeric> #include <cstdio> #include <cstring> #include <cmath> #include <cctype> #include <sstream> #define rep(i, a) REP(i, 0, a) #define REP(i, a, b) for(int i = a; i < b; ++i) #define rrep(i, a) RREP(i, a, 0) #define RREP(i, a, b) for(int i = a; i >= b; --i) #define repll(i, a) REPLL(i, 0, a) #define REPLL(i, a, b) for(ll i = a; i < b; ++i) #define rrepll(i, a) RREPLL(i, a, 0) #define RREPLL(i, a, b) for(ll i = a; i >= b; --i) typedef long long ll; typedef unsigned long long ull; typedef std::pair< int , int > P; typedef std::pair< int , P> PP; const double PI = 3.14159265358979323846; const double esp = 1e-9; const int infi = ( int )1e+9 + 10; const ll infll = (ll)1e+18 + 10; int n, W; int v[101], w[101]; int dp[105][10001]; int main(){ std::cin >> n >> W; rep(i, n)std::cin >> v[i] >> w[i]; memset (dp, -1, sizeof (dp)); dp[0][0] = 0; rep(i, n){ rep(j, W + 1){ if (dp[i][j] == -1) continue ; dp[i + 1][j] = std::max(dp[i + 1][j], dp[i][j]); if (j + w[i] < W + 1)dp[i + 1][j + w[i]] = std::max(dp[i + 1][j + w[i]], dp[i][j] + v[i]); } } int maxi = 0; rep(i, W + 1) if (dp[n][i] > dp[n][maxi])maxi = i; std::cout << dp[n][maxi] << std::endl; std::vector< int > vec; for ( int i = n; i > 0; --i){ if (maxi - w[i - 1] >= 0 && dp[i - 1][maxi - w[i - 1]] == dp[i][maxi] - v[i - 1]){ vec.push_back(i); maxi -= w[i - 1]; } } if (vec.size())std::cout << vec[0]; REP(i, 1, vec.size()){ std::cout << " " << vec[i]; } std::cout << std::endl; return 0; } |
ステータス
項目 | データ |
---|---|
問題 | 0240 - ナップザック問題(Expert) |
ユーザー名 | tia |
投稿日時 | 2015-12-19 11:13:59 |
言語 | C++11 |
状態 | Accepted |
得点 | 7 |
ソースコード長 | 1753 Byte |
最大実行時間 | 50 ms |
最大メモリ使用量 | 4916 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 7 / 7 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
DPL_1_B_in1.txt | AC | 50 ms | 4568 KB |
1
|
DPL_1_B_in2.txt | AC | 24 ms | 4640 KB |
1
|
DPL_1_B_in3.txt | AC | 23 ms | 4816 KB |
1
|
DPL_1_B_in4.txt | AC | 20 ms | 4844 KB |
1
|
DPL_1_B_in5.txt | AC | 19 ms | 4816 KB |
1
|
DPL_1_B_in6.txt | AC | 19 ms | 4788 KB |
1
|
DPL_1_B_in7.txt | AC | 21 ms | 4888 KB |
1
|
DPL_1_B_in8.txt | AC | 23 ms | 4864 KB |
1
|
DPL_1_B_in9.txt | AC | 20 ms | 4832 KB |
1
|
DPL_1_B_in10.txt | AC | 24 ms | 4672 KB |
1
|
DPL_1_B_in11.txt | AC | 24 ms | 4776 KB |
1
|
DPL_1_B_in12.txt | AC | 23 ms | 4748 KB |
1
|
DPL_1_B_in13.txt | AC | 19 ms | 4588 KB |
1
|
DPL_1_B_in14.txt | AC | 23 ms | 4556 KB |
1
|
DPL_1_B_in15.txt | AC | 29 ms | 4532 KB |
1
|
DPL_1_B_in16.txt | AC | 24 ms | 4632 KB |
1
|
DPL_1_B_in17.txt | AC | 25 ms | 4604 KB |
1
|
DPL_1_B_in18.txt | AC | 20 ms | 4696 KB |
1
|
DPL_1_B_in19.txt | AC | 26 ms | 4544 KB |
1
|
DPL_1_B_in20.txt | AC | 23 ms | 4736 KB |
1
|
DPL_1_B_in21.txt | AC | 40 ms | 4584 KB |
1
|
DPL_1_B_in22.txt | AC | 17 ms | 4812 KB |
1
|
DPL_1_B_in23.txt | AC | 21 ms | 4784 KB |
1
|
DPL_1_B_in24.txt | AC | 32 ms | 4756 KB |
1
|
DPL_1_B_in25.txt | AC | 25 ms | 4724 KB |
1
|
DPL_1_B_in26.txt | AC | 27 ms | 4692 KB |
1
|
DPL_1_B_in27.txt | AC | 26 ms | 4784 KB |
1
|
DPL_1_B_in28.txt | AC | 28 ms | 4880 KB |
1
|
DPL_1_B_in29.txt | AC | 20 ms | 4848 KB |
1
|
DPL_1_B_in30.txt | AC | 27 ms | 4916 KB |
1
|
DPL_1_B_in31.txt | AC | 28 ms | 4760 KB |
1
|
DPL_1_B_in32.txt | AC | 25 ms | 4728 KB |
1
|
DPL_1_B_in33.txt | AC | 19 ms | 4828 KB |
1
|
DPL_1_B_in34.txt | AC | 24 ms | 4672 KB |
1
|
DPL_1_B_in35.txt | AC | 21 ms | 4768 KB |
1
|
DPL_1_B_in36.txt | AC | 23 ms | 4740 KB |
1
|