Tenka1 Programmer Beginner Contest-D:IntegerotS
問題
ある数 と つの組 が与えられる。 つの組からいくつか を選び、価値の総和を とする。選んだそれぞれの の or が を超えないようにするとき、価値の最大値を求めよ。
考え方
満たすべき条件について考える。条件は「選んだ の or が 以下にならなければならない」ということである。or をとったときに 以下になる数について考える。
例えば とすると、or をとったときの 以下になる数の候補としては、
である。つまり の ビット目が であるとき、 ビット目を として ビット目以降を とした数が候補となる。すべての候補になりうる数について、各 との or をとって条件を満たす価値の総和を求めればよい。
Submission #3428078 - Tenka1 Programmer Beginner Contest
ポイント
- 条件を満たす場合について考える