2024/6/1(土)

ABC356に出た。

A: やるだけ

B: やるだけ

C: 全探索

D: ビットごとに分けて考えると楽。Mで1になっている各ビットについて「そのビットが1」かつ「N以下」なる自然数がいくつあるか考えて総和を取ればよい。頭のいい方法が分からなかったのでbit桁DPでごり押したが、ちゃんと頭のいい方法もあるようだ。

E: ソートするとmax(Ai,Aj)/min(Ai,Aj)は単にAj/Aiになる。Aiを固定すると、AjはAi~2Ai-1, 2Ai~3Ai-1といったグループでAj/Aiは同じ値になることが分かるので、これはバケットソートしてやれば調和級数の計算量になりそうだなということが分かる。それはそれとして一生オーバーフローに気付かず、解けなかった。

F: ダイコネなどを検討したが時間内には解けず。

Categories: