bit 全探索
キーワード
概要
bit を用いた全探索の手法。
の全ての部分列を列挙できる。
計算量
実装
for b := 0; b < (1 << n); b++ {
for i := 0; i < n; i++ {
if (b & (1 << i)) == 0 {
continue
}
// ...
}
}
1 << n
で となるので、b
は から まで動く。
その後、各i
について、1 << i
で となるので、(b & (1 << i))
で 桁目が かどうか判定する。
go の場合は、if 文の条件をbool
型しかいれることができないので、 の場合は早期 return する形にしている。