これはABC121解説ですか?

A - White Cells

小学校の算数でよくやるやつ
(H-h)(W-w)が答え

https://atcoder.jp/contests/abc121/submissions/4514349

C - Energy Drink Collector

店をAで昇順にソート
安い順に貪欲に買っていく

https://atcoder.jp/contests/abc121/submissions/4518300

D - XOR World

f(A,B) = f(0,B) \oplus f(0,A-1)なので
f(0,n)を高速に求められればいい

2進数にしてそれぞれの桁のbitが立っているかどうか判定する
f(0,n)のi桁目のbitが立っている→0,1,2,...nでi桁目のbitが立っているのが奇数個
2^iの位が0が2^i個1が2^i個ずつループする
iが0なら
2ループ(4個)でxorが0に戻る
\pmod 4
1 \equiv n, 2\equiv nなら1、それ以外なら0
それ以外
1ループでxorが0に戻る
(n+1)/2^i \bmod 2 = 1かつ
((n+1)\bmod2^i)\bmod 2=1なら1

解説にあった
2n\oplus(2n+1)=1を使ったほうが楽そう

https://atcoder.jp/contests/abc121/submissions/4522671

感想

30分台
Dの実装でちょっと詰まった