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