AtCoder Beginner Contest 129 E - Sum Equals Xor
問題概要
正整数に対し、∧ xor となるは何組存在するか。
解法
を上の桁から見て行って、桁目でよりも大きくなるとする(これは桁目が'1'であることと一致する)。すると、それまでに出てきた'1'の個数をとすると、について、の中に'1'という文字は個含まれる。よって、の桁目()において考えられるの桁の組み合わせはの2通りの為、上桁目までで考えられる整数の通り数は通り。
反対に、桁目以降についてはどのように配置しても条件を満たすため、の3通りが配置として考えられるため、とすると、通りがあり得る。
纏めると、桁目(桁目は'1')において、考えられる整数は通り。
よって、を前から見て行き、'1'という文字が出てくるたびに答えとなる変数に上記の数値を足していけばよい。これを実装して、AC。