回答編集履歴
2
見落としによる記述があるため修正
test
CHANGED
@@ -20,9 +20,7 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
|
23
|
+
(ここにあった文は質問にある条件を無視していたため伏せる)
|
24
|
-
|
25
|
-
|
26
24
|
|
27
25
|
|
28
26
|
|
1
追記1
test
CHANGED
@@ -21,3 +21,41 @@
|
|
21
21
|
|
22
22
|
|
23
23
|
それか、単純に 「条件に一致するかどうか」の部分で「0があるかどうか調べる」的な処理を入れてもいいですね。
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
------
|
30
|
+
|
31
|
+
[追記1]
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
基本的にbit全探索の流れは、
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
```
|
40
|
+
|
41
|
+
1. 要素の個数分(配列の要素数とか)以下をループする
|
42
|
+
|
43
|
+
1.1. (1)で生成したビット列を一つずつ見ていき、以下を繰り返す
|
44
|
+
|
45
|
+
1.1.1. ビットが立っているのなら
|
46
|
+
|
47
|
+
1.1.1.1. 追加等の処理
|
48
|
+
|
49
|
+
1.1.2. (1.1.1.1)で追加したデータが条件を満たしているか
|
50
|
+
|
51
|
+
1.1.2.1. カウントアップ等の処理
|
52
|
+
|
53
|
+
```
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
のような感じになっていますね。この(1.1.1.1) のところぐらいで、「値が0なら→計上する」的な感じにすればいいかと。
|
58
|
+
|
59
|
+
そうすれば、(1.1.2.1)で「0が含まれているのなら」を省く事ができるはずです。
|
60
|
+
|
61
|
+
(それにどの道 (1.1.1)では n 回ループし、値を見れるはずなので)
|