[AtCoder] ABC 197 C – ORXOR
長さ \( N \) の数列から得られる長さ \( 1 \) 以上の連続した部分数列は、\( 2^{N-1} \) 通りあるので、ビット全探索します。イメージとして、分割される位置をビット列で表し、その値を更新していけば良いで ...
[AtCoder] ABC 190 C – Bowls and Dishes
人 \( i \) は皿 \( C_i \) または \( D_i \) にボールを置くので、\( 2^K \) 通りのパターンが考えられます。したがって、ビット全探索を行います。
コード#include <bit ...
[AtCoder] ABC 184 F – Programming Contest
\( n = \min(20, N) \) として、問題を \( n \) と \( N – n \) 個に分けて考えます。前半の問題の集合を \( A \) とし、後半を \( B \) とします。\( ...
[AtCoder] ABC 104 C – All Green
問題を解く順番は関係ないので、コンプリートする問題を全探索します。これは、ビット全探索で解くことはできます。コンプリートした問題の集合を \( 2 \) 進数で表し、点数が \( G \) 未満ならば、コンプリートしていない問 ...
[AtCoder] ABC 173 C – H and V
各行と各列に対して、色を塗るかどうかを考えればよいので、ビット全探索を行います。
コード#include <bits/stdc++.h>using namespace std;typedef long long l ...
[AtCoder] ABC 167 C – Skill Up
各本に対して読む読まないの \( 2 \) 通りが考えられるので、ビット全探索を行います。
コード#include <bits/stdc++.h>using namespace std;typedef long l ...
[AOJ] No. 0410 アカベコ20
参加するメンバーの組み合わせは \( 2^{N} – 1\) 通りあるので、ビット全探索を行います。周期が同じメンバーが増えても必ず同じ公演に参加することになるので、参加するメンバーの組み合わせが増えることはありま ...
[AtCoder] ABC 147 C – HonestOrUnkind2
ある人は正直者か不親切な人かの \( 2 \) 通りなので、全体で \( 2^N \) のパターンがあります。なので、ビット全探索を行います。人 \( i \) が正直者としたとき、その証言が現在のビットの状態と同 ...
[AtCoder] ABC 002 D – 派閥
派閥の組み合わせはビット列で表現できるので、ビット全探索を用いて最大の派閥に属する議員数を求めます。派閥が成り立つときその派閥のグラフは完全グラフになっている必要があります。完全グラフかどうかの確認は、人間関係を隣 ...
[AtCoder] ABC 128 C – Switches
制約を見ずにこの問題を解こうとすると、ドツボに嵌るかもしれません。スイッチの数と電球の数は最大でも \( 10 \) なので、全探索を考えます。スイッチの状態は on/off の \( 2 \) 通りなので、ビット ...