ウホウホゴリラッホ

主に勉強したことをまとめていきます。twitter:@pytran3

隣合うbitのチェック

実装例

Misteerさんのコードを眺めてたら賢いと思ったので記録。
i番目とi+1番目のbitが立っていること独立にやるのではなく(b >> i) % 4 == 3でチェックする。賢い。
※ 元コードだとvalidationだけど加算に書き換えている。

int w = 8;
int sum = 0;
for (int b = 0; b < (1 << (w - 1)); ++b) {
    for (int i = 0; i < w - 2; ++i) {
        if ((b >> i) % 4 == 3) sum++;
    }
}

Submission #3536111 - AtCoder Beginner Contest 113