teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

わからない部分を具体的にしました

2022/01/05 19:33

投稿

MakiAram
MakiAram

スコア12

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,23 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- ナップサック問題を解いています二次元配列を用いて実現する方法はわかりました。
3
+ ナップサック問題を解いています二次元配列を用いて実現する方法はわかりました。
4
- 次に一次元配列を二つ使用して実現する方法や、一つだけ使用する方法を考えているのですが、いまいちわかりません。
4
+ 次に一次元配列を二つ使用する方法や、一つだけ使用して実現する方法を考えているのですが、いまいちどのようにコードを書けばよいかがわかりません。
5
5
  どうかよろしくお願いします。
6
6
  ### 発生している問題
7
7
  ナップサック問題を二次元配列を用いずに実現したい。
8
+ ソースコードにある二次元配列dpを一次元配列で実現させたい。
9
+ ここら辺をどうすればいいか悩んでいます
8
10
 
11
+ ```
12
+ for(i=0;i<=N;i++){
13
+ for(j=0;j<=M;j++){
14
+ int x,y=-1;
15
+ if(i!=0){
16
+ x = dp[i-1][j];
17
+ if(j>=w[i])y = dp[i-1][j-w[i]]+v[i];
18
+ if(x>y)dp[i][j]=x;
19
+ else dp[i][j]=y;
20
+ ```
9
21
 
10
22
  ### 該当のソースコード
11
23