Rust で bit 全探索
こんにちは、 @kz_morita です。
最近また,競技プログラミングをちゃんとやろうと思い,まずは全探索からということで bit 全探索の問題を解いたりしていました.
C - Switches 今回は,Rust で bit 全探索する方法についてまとめます.
bit 全探索とは bit 全探索は,全探索の一つで組み合わせを列挙するような用途に使用できます.
例えば { A, B, C, D } の文字列の部分集合を全探索するようなケースを考えます.
これは,二進数で,0000 ~ 1111 までの数値を考え,各桁のbit を { A, B, C, D } と対応付けると すべてのパターンを探索できるといった考え方です.
すなわち,{ A, B, C, D } からなるすべての部分集合を求めるには,0 ~ 31 (0 <= i < (1«4)) まで数え上げれば良いことになります.
0000 => {} 0001 => { A } 0010 => { B } 0011 => { A, B } 0100 => { C } 0101 => { A, C } .