解説
上のビットから求めて行きます。桁DPを行います。
dp[iビット目][xがa未満確定か][yがb未満確定か] のようなdp配列を作成します。
Xのiビット目を固定した時、Yのiビット目も一意に定まります。
0,1どちらも試し、Aのiビット目が1かつ、試したビットが0の時にXがA未満が確定します。Yも同様です。
最後のビットまで見た時、dp[0][0][0]+dp[0][0][1]+dp[0][1][0]+dp[0][1][1]が答えとなります。
実装ではdpのiビット目の部分は省いています。
実装