2025年11月27日木曜日

AtCoder Beginner Contest 426

 Fまで六完。

コンテスト後のツイート


G - Range Knapsack Query

 解説放送を見てAC。
 自力で思いつくのは難しいが、知ってしまえば単純な内容。

 分割統治で答えを求める……と言われてもなぜそれで計算量が落ちるのかピンと来なかったが、noshiさんによるDisjoint Sparse Tableの図を見ると分かりやすかった。

 これをデータ構造として持つのがDisjoint Sparse Tableですね。今回はクエリ先読みできるので分割統治で、この図のようなことをやる(上のノードから下のノードへ分割し、潜っていく)とOK。

 なお、実装にも苦戦しました。分割統治したデータを持とうとするとMLEしたのが一つ。また、クエリでl=rの場合での場合分けが必要で、そこにもなかなか気付きませんでした。

0 件のコメント:

コメントを投稿