mini notes

競技プログラミングの解法メモを残していきます。

yukicoder No.1015 おつりは要らないです(★2.5)

問題:No.1015 おつりは要らないです - yukicoder

解答:#471337 (C++14) No.1015 おつりは要らないです - yukicoder

解法:次の手順で行う貪欲法。証明は解説参照。

あらかじめa[i]に1を足しておく。a[i]はpriority queue(変数名pq)として管理。
pqのtopが0になればYes、お金を全て使ってもpqのtopが0出なければNo。

  1. pqのtopが1万円以上であれば、topに1万円札をつかってゆく。1万円未満になればtopをpqに戻す。
  2. まだ1万円札がある場合はさらに1万円札をpqのtopにつかってゆく。

同じことを5千円札、1千円札にも行う。