ビット逆順 (bit reversal) にして考えると、いい感じに散らばってくれる

「長さ 2^N の…」って書いてあったらセグ木が思い浮かびがち

1点で乱択するか2点で乱択するかの2択がある
最初 gcd で割る正規化を忘れてた
HashMap がおそすぎる
ベンチマーク
上から HashMap, sorted().dedup_with_count(), counts() (内部で HashMap)

HashMap 周りの計算量の感覚を身につける必要がある
競プロにおける乱数の活用例
https://x.com/paruma184/status/1825928367734219034?s=46
乱数の活用(ゾブハ)