回答編集履歴

1

追記

2020/03/10 04:20

投稿

退会済みユーザー
test CHANGED
@@ -14,12 +14,56 @@
14
14
 
15
15
 
16
16
 
17
- (する, する, する)の組み合わせは可能で総補給量は12L、最後に残る量は3L
17
+ 0. (する, する, する)の組み合わせは可能で総補給量は12L、最後に残る量は3L
18
18
 
19
- (する, する, しない) の組み合わせは可能で総補給量は11L、最後に残る量は2L
19
+ 0. (する, する, しない) の組み合わせは可能で総補給量は11L、最後に残る量は2L
20
20
 
21
- (する, しない, X)の組み合わせは(する, しない, する)と(する, しない, しない)を個別に調べるまでもなく不可能
21
+ 0. (する, しない, X)の組み合わせは(する, しない, する)と(する, しない, しない)を個別に調べるまでもなく不可能
22
22
 
23
- (しない, X, Y)の組み合わせも同様に全部不可能
23
+ 0. (しない, X, Y)の組み合わせも同様に全部不可能
24
24
 
25
25
  よって最小の補給量は11Lで、その時のゴール地点での残量は2L
26
+
27
+
28
+
29
+ # 追記
30
+
31
+ ガソリンが足りないパターンが一つ見つかったからといってその後の全部の組み合わせをスキップすることはできないです。全組み合わせをループするというやり方だとちょっとやりづらいかもしれません。
32
+
33
+
34
+
35
+ もうちょっと丁寧に書くとこんな感じですかね。
36
+
37
+ (簡単に書くために、補給するを「1」、補給しないを「0」と略記)
38
+
39
+ 1から始まる組み合わせをスキップできるかを確認する。
40
+
41
+ 11から始まる組み合わせをスキップできるかを確認する。
42
+
43
+ 111の組み合わせを調べる(1.)。
44
+
45
+ 110の組み合わせを調べる(2.)。
46
+
47
+ 10から始まる組み合わせをスキップできるかを確認する(3.)。今回はできるので次の二つの手続きをスキップ。
48
+
49
+ 101の組み合わせを調べる。
50
+
51
+ 100の組み合わせを調べる。
52
+
53
+ 0から始まる組み合わせをスキップできるかを確認する(4.)。今回はできるので残りの手続きを全部スキップ。
54
+
55
+ 01から始まる組み合わせをスキップできるかを確認する。
56
+
57
+ 011の組み合わせを調べる。
58
+
59
+ 010の組み合わせを調べる。
60
+
61
+ 00から始まる組み合わせをスキップできるかを確認する。
62
+
63
+ 001の組み合わせを調べる。
64
+
65
+ 000の組み合わせを調べる。
66
+
67
+
68
+
69
+ [深さ優先探索](https://ja.wikipedia.org/wiki/%E6%9C%A8%E6%A7%8B%E9%80%A0_(%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0)#%E6%B7%B1%E3%81%95%E5%84%AA%E5%85%88%E6%8E%A2%E7%B4%A2)が参考になると思います。