質問編集履歴

3

書式の改善です

2021/11/26 11:05

投稿

vi_24E
vi_24E

スコア1

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  リンク先のコードです
22
22
 
23
- C++(GCC 9.2.1)
23
+ ```C++(GCC 9.2.1)
24
24
 
25
25
  #include<bits/stdc++.h>
26
26
 
@@ -87,3 +87,5 @@
87
87
  cout << dp[w][n - 1] << endl;
88
88
 
89
89
  }
90
+
91
+ ```

2

リンク先のコードをこちらにも追記しておきます。

2021/11/26 11:05

投稿

vi_24E
vi_24E

スコア1

test CHANGED
File without changes
test CHANGED
@@ -13,3 +13,77 @@
13
13
 
14
14
 
15
15
  何卒よろしくお願い申し上げます。
16
+
17
+
18
+
19
+
20
+
21
+ リンク先のコードです
22
+
23
+ C++(GCC 9.2.1)
24
+
25
+ #include<bits/stdc++.h>
26
+
27
+ using namespace std;
28
+
29
+
30
+
31
+
32
+
33
+ int main() {
34
+
35
+ long long n, w;
36
+
37
+ cin >> n >> w;
38
+
39
+ long long wei[n], val[n];
40
+
41
+ long long dp[200010][110];
42
+
43
+
44
+
45
+ for (long long i = 0; i < n; i++){
46
+
47
+ cin >> wei[i] >> val[i];
48
+
49
+ }
50
+
51
+
52
+
53
+ for (long long i = 0; i < 200010; i++){
54
+
55
+ for (long long j = 0; j < 110; j++){
56
+
57
+ dp[i][j] = 0;
58
+
59
+ }
60
+
61
+ }
62
+
63
+
64
+
65
+ dp[wei[0]][0] = val[0];
66
+
67
+ dp[wei[0]][1] = val[0];
68
+
69
+
70
+
71
+ for (long long i = 1; i < n; i++){
72
+
73
+ for (long long j = 0; j < w; j++){
74
+
75
+ dp[j + wei[i]][i] = max(dp[j + wei[i]][i], max(dp[j + wei[i]][i], dp[j][i - 1] + val[i]));
76
+
77
+ dp[j + wei[i]][i + 1] = dp[j + wei[i]][i];
78
+
79
+ dp[j + wei[i] + 1][i] = max(dp[j + wei[i] + 1][i], dp[j + wei[i]][i]);
80
+
81
+ }
82
+
83
+ }
84
+
85
+
86
+
87
+ cout << dp[w][n - 1] << endl;
88
+
89
+ }

1

言語について記述し忘れていたので、修正いたしました。

2021/11/26 09:36

投稿

vi_24E
vi_24E

スコア1

test CHANGED
@@ -1 +1 @@
1
- ナップサック問題が解けなくて困っています
1
+ C++でナップサック問題が解けなくて困っています
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 次の問題に提出をしたのですが、ACが出なくて困っています。色々と問題がありそうなところは修正してみたのですが、どうにも入力されるデータが大きいと正しい答えが出力できていないようです。どなたか、アドバイスお願いします。
5
+ 次の問題に提出をしたのですが、ACが出なくて困っています。色々と問題がありそうなところは修正してみたのですが、どうにも入力されるデータが大きいと正しい答えが出力できていないようです。言語はC++(GCC 9.2.1)です。どなたか、アドバイスお願いします。
6
6
 
7
7
 
8
8