E - Set Meal 解説 by miscalculation53


rsk0315 さんの解説 のセグ木パートは std::set 等でもできます。\((b_j, j)\) をすべて入れた set を用意しておき、各主菜 \(i\) に対する計算では

  1. 合わせられない副菜を set から削除
  2. set に入っているうち \(b_j\) が最大のものを取得
  3. 1. で削除した要素を set に入れ直す

を行えばよいです。計算量は同様に \(O((N+L)\log M)\) 時間です。

投稿日時:
最終更新: