2026年5月28日木曜日

Spectral::Cup 2026 Round 2 (Codeforces Round 1100, Div. 1 + Div. 2)

 Dまで四完。E解きたかったね。

コンテスト後のツイート

E. Deconstruction Tree

 解法ツイートなど参照してAC。

 コンテスト中に配るDPでのDPは書けていて、それをどう高速化するのかが分からなかった。ツイートで書いたことがあっていて、もらうDPにするともらう先が区間になり高速化可能だった。なんで正しいことを考察しているのに、答えに至れないのか……。

 ただ、その上で、答えが何か? というところでもう一考察必要だった。頂点Nに対して、DPがどこから遷移するか? というのをちゃんと考えなければならない。それが上手くいかず、結局コンテスト中に書いたDPとランダムテストでチェックしてACした。

 惜しくなかったわけではないんだけど、実際にACするには遠かった気もする。

F. Load Unbalancing

 解説AC。

・一番大きい数を最後に加えるとして良い
・他のものたちについて、k個に詰めたときのminを最大化したい。
・これは答えを二分探索し、bit DPすれば良い。なぜなら、minの最大化の場合、できるだけ平均的に詰めれば良いので、問題文で指定されたような詰め方を考えなくて良いから。上手く詰める方法があれば、問題文で指定した方法で詰められるので、(二分探索の)mid以上のものが何個あり、最後の箱に何個入っているか? だけ見ればOK。

 言われてみれば理解できるし、制約にbit DPを使う(だろう)というヒントもある。






0 件のコメント:

コメントを投稿