きろく

特筆すべき記録のまとめ

Codeforces Global Round 2:B - Alyona and a Narrow Fridge

問題

codeforces.com

解法

何本までを冷蔵庫に入れるか (k) を固定して考えたとき,a_1, a_2, ... , a_k をソートしたものを b とおく.まず,高さ b_k のものを入れなければならないので,仕切りは必ず b_k の高さが入るような空間が出来るように入れなければならない.次に b_(k - 1) は b_k の高さの空間が前の操作であるのでその隣に入れればよい.その次に b_(k - 2) は 1 つめの仕切りの上に置き,高さ b_k + b_(k - 2) のところに仕切りを入れる.つまり,b_k, b_(k - 2), ... は仕切りを入れる高さに影響を与える.なので,この和を各 k について求め,h 以下になるものの中で最大の k を答えとすればよい.k を固定するごとにソートをするので,全体で O(N^2 logN).

解答

codeforces.com

f:id:babcs2035:20190407122219p:plain