bouzuya.hatenablog.com

ぼうずやのにっき

ABC245 E - Wrapping Chocolate を解いた

ABC245: AtCoder Beginner Contest 245 E - Wrapping Chocolate を解いた。

問題: https://atcoder.jp/contests/abc245/tasks/abc245_e

本番では解けなかった。解けそうで解けなかった。解けると思って D を飛ばしたらひどくハマって解けなかった。 D を解かなかったせいで緑になった。

さて。本番で考えたことを書く。

縦と横のふたつの軸がある。こういうときはどちらか一方でソートして扱うとそちらを考慮しなくて良くなる。チョコレート・箱を共に縦で昇順に並べることを考えた。この順序でチョコレートを走査する。あるチョコレートの縦よりも大きいもののうち最小の横幅を選べば良さそうだ。どうやって……?

解説: https://atcoder.jp/contests/abc245/editorial/3635

解説によるとチョコレート・箱を合わせて縦の降順・箱→チョコレートの順で並べる。箱のとき順序集合に横幅を入れてチョコレートのとき順序集合から最小のものを取り出す。取り出せなければ No 。すべての要素を操作できれば Yes 。

注意すべきは BTreeSet にしてしまうと同じ横幅の箱が 2 つあったときに困るので BTreeMap にして個数を保持した。

見落としていた点は「横をキーとした順序集合を用意する (縦の降順にソートしてあるのでそれで十分で両方は要らない)」「対象外のものを選択肢 (順序集合) に含めないこと」だろう。

提出: https://atcoder.jp/contests/abc245/tasks/abc245_e


体調が悪くノルマなどはこなしたもののほとんど一日寝ていた。


今日のコミット。