回答編集履歴

2

見落としによる記述があるため修正

2021/11/04 10:26

投稿

BeatStar
BeatStar

スコア4958

test CHANGED
@@ -20,9 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- それか、単純 「条件一致するかどうか」の部分で「0があるかどうか調べる」的な処理入れいですね。
23
+ (ここあった文は質問にある条件無視していたため伏せる)
24
-
25
-
26
24
 
27
25
 
28
26
 

1

追記1

2021/11/04 10:26

投稿

BeatStar
BeatStar

スコア4958

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 回ループし、値を見れるはずなので)