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

質問編集履歴

3

初心者アイコンを付けました

2016/07/31 11:59

投稿

RinT_hinabita39
RinT_hinabita39

スコア28

title CHANGED
File without changes
body CHANGED
File without changes

2

実行例を追加

2016/07/31 11:59

投稿

RinT_hinabita39
RinT_hinabita39

スコア28

title CHANGED
File without changes
body CHANGED
@@ -100,4 +100,61 @@
100
100
  ```
101
101
 
102
102
  ###注釈
103
- i--,k--付近にある System.out.println(k+" "+i); は、自分が今荷物数が何で、容量が何を見ているかのデバッグ用です。
103
+ i--,k--付近にある System.out.println(k+" "+i); は、自分が今荷物数が何で、容量が何を見ているかのデバッグ用です。
104
+
105
+ ###実行例
106
+ 上手くいく例
107
+
108
+ java DPKnapsack2 10 10
109
+ 9 10
110
+ 8 10
111
+ 7 10
112
+ 6 10
113
+ 6 9
114
+ 6 8
115
+ 6 7
116
+ 6 6
117
+ 6 5
118
+ 5 5
119
+ 4 5
120
+ 4 4
121
+ 4 3
122
+ 4 2
123
+ 4 1
124
+ 3 1
125
+ 2 1
126
+ 1 1
127
+ 重さ 1 価値 250
128
+ 重さ 4 価値 420
129
+ 重さ 5 価値 510
130
+ 合計価値 1180
131
+
132
+ ダメな例
133
+
134
+ C:\Users\RinRin\Desktop\prog>java DPKnapsack2 10 15
135
+ 9 15
136
+ 8 15
137
+ 7 15
138
+ 6 15
139
+ 6 14
140
+ 6 13
141
+ 6 12
142
+ 6 11
143
+ 6 10
144
+ 6 9
145
+ 6 8
146
+ 6 7
147
+ 6 6
148
+ 6 5
149
+ 6 4
150
+ 6 3
151
+ 6 2
152
+ 6 1
153
+ 6 0
154
+ 6 14
155
+ 6 13
156
+ 6 12
157
+ 6 11
158
+ 6 10
159
+ 6 9
160
+ 6 8 (以下ループ)

1

コードの一部が改良前のものをコピペしてしまっていました

2016/07/31 11:51

投稿

RinT_hinabita39
RinT_hinabita39

スコア28

title CHANGED
File without changes
body CHANGED
@@ -57,6 +57,8 @@
57
57
  k = n; i = C;
58
58
  int total = G[k][i];
59
59
 
60
+ //ここより下が問題の箇所です
61
+
60
62
  while (true) {
61
63
  if (S[k][i] == true) {
62
64
  SS[k] = true;
@@ -64,8 +66,10 @@
64
66
  if (total == 0) break;
65
67
  while (total != G[k][i]) {
66
68
  if (i>=1) i--;
69
+ else {
70
+ i = C;
67
- else break;
71
+ break;
68
-
72
+ }
69
73
  System.out.println(k+" "+i);
70
74
  }
71
75
  }
@@ -75,6 +79,8 @@
75
79
  return SS;
76
80
  }
77
81
 
82
+ //これ以降は問題ないです
83
+
78
84
  public static void main(String [] args) {
79
85
  if (args.length == 2) {
80
86
  int k = Integer.parseInt(args[0]);