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

回答編集履歴

2

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

2021/11/04 10:26

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -9,9 +9,8 @@
9
9
 
10
10
  0のとき、bool flag を trueにして、そのifの外側の『条件に一致するか』のところで、「flagがtrueなら0を含んでいるとみなす」的な感じにすればいいかと。
11
11
 
12
- それか、単純 「条件一致するかどうか」の部分で「0があるかどうか調べる」的な処理入れいですね。
12
+ (ここあった文は質問にある条件無視していたため伏せる)
13
13
 
14
-
15
14
  ------
16
15
  [追記1]
17
16
 

1

追記1

2021/11/04 10:26

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -9,4 +9,23 @@
9
9
 
10
10
  0のとき、bool flag を trueにして、そのifの外側の『条件に一致するか』のところで、「flagがtrueなら0を含んでいるとみなす」的な感じにすればいいかと。
11
11
 
12
- それか、単純に 「条件に一致するかどうか」の部分で「0があるかどうか調べる」的な処理を入れてもいいですね。
12
+ それか、単純に 「条件に一致するかどうか」の部分で「0があるかどうか調べる」的な処理を入れてもいいですね。
13
+
14
+
15
+ ------
16
+ [追記1]
17
+
18
+ 基本的にbit全探索の流れは、
19
+
20
+ ```
21
+ 1. 要素の個数分(配列の要素数とか)以下をループする
22
+ 1.1. (1)で生成したビット列を一つずつ見ていき、以下を繰り返す
23
+ 1.1.1. ビットが立っているのなら
24
+ 1.1.1.1. 追加等の処理
25
+ 1.1.2. (1.1.1.1)で追加したデータが条件を満たしているか
26
+ 1.1.2.1. カウントアップ等の処理
27
+ ```
28
+
29
+ のような感じになっていますね。この(1.1.1.1) のところぐらいで、「値が0なら→計上する」的な感じにすればいいかと。
30
+ そうすれば、(1.1.2.1)で「0が含まれているのなら」を省く事ができるはずです。
31
+ (それにどの道 (1.1.1)では n 回ループし、値を見れるはずなので)