解法
が問題の条件を満たすには、これらを2進数に直した時に、
最上位桁が一致している
それぞれの桁について、
の
桁目と
の
桁目が一致している、もしくは
のみ0で
のみ1になっている
という条件を満たす必要があります。
ということで、最上位桁が下から桁目の際の
のペアを求めるために、桁DPを行います。あとはこれを全ての桁について行えばよいです。
を用意し、
:上から何桁目を見ているか(ただし最上位桁は確定しているのでないものとします)
:
が
以上であることが確定しているか
:
が
以下であることが確定しているか
とします。
あとは、下の表をもとに遷移をひたすら書いていけばよいです…
感想
の存在が邪魔で、うまい処理方法を思いつきませんでしたが、よくよく考えれば
同様フラグを立てれば処理できますね…ただ桁DPの実装は丁寧にやらないといつもバグらせるので悲しいです(コンテスト中にラスト10分で書き直したものはもちろんバグだらけでした)