2022年12月28日水曜日

Codeforces Round #841 (Div. 2) and Divide by Zero 2022

 Cまで三完。Eは通したかった。

コンテスト後のツイート

D. Valiant's New Map

 二次元Sparse table(か、二次元セグメント木)でやるしかないと思ってコンテスト中書いたがWA。
 クエリ計算のところで、二点のminではなく、四点のminを取るよう修正したらMLEになりました。

 昔、二次元Sparse tableを書いたときそれだけで数時間かかったことを思えば成長。一旦Sparse tableを取ったあと、そのそれぞれの要素についてもう一度Sparse tableを取ると考えたら、それほど詰まらずに書けました。このままライブラリ化しても良いかも?
 この感じなら、二次元セグメント木も書けそうな気がしてきました。

 ただ、この問題はそういうデータ構造を使わなくても解ける問題でした。毎回二次元累積和を取る解法でAC。

E. Graph Cost

 約数包除くでgcdの個数を列挙した後、大きい方から貪欲にやればOK。
 という解法は分かっていたけど、約数包除の実装でミス。時間がなかったので、ベン図など書かずにこんなものかな、と実装したらダメ。ちゃんと図を描いたら解けました。
 

0 件のコメント:

コメントを投稿