そこからN本の木に対して何人監視員が必要になるかを割り算で求めるだけです。答えを切り上げることに注意。(つまり、intでの/除算が切り捨ての言語はちょうど割り切れる時に気をつけないといけないことに注意。Handling数列の中の最大値を、複数の項が持っている場合、いずれかの最大値を抜いても他の最大値が残ります。どの項を除こうが最大値は常に同じ(数列中の最大値)です。最大値が単独の場合、その項を抜いた場合だけは二番目に大きい数が最大値になります。最大値とその項番は、入力を取得する時に容易に保存しておけますし、二番目に大きい数は数列をソートすれば容易にとれます。Boxesiが大きい方から見ていけば、すべての箱に対してボールを入れるか入れないかを決定することが可能です。D問題なのに計算量についてはそれで問題ありません。1のときはN個見ないといけませんが、上半分については自分自身しか見る必要がありませんからね。言いつつ、私は実装をバグらせてしまい、コンテスト中にデバッグしきれませんでした。DecomposingeditorialにはLISってありましたが、私はそれ系の知識を持ち合わせていないので、ごりごり実装しました。(勉強しないと)説明はしにくいんですけど、実装は単純なのでとりあえず見てください。(えー)https://atcoder.jp/contests/abc134/submissions/6467438要するに、待ち受けしている数字に繋げられるなら繋げる(その際できるだけ大きい方に繋ぐ)、そうでなければ自身を新しい待ち受けにする、を繰り返して、最終的に待ち受けしている数字の個数が答え、としました。なんか嬉しい)ところで自分はvectorで実装したんですけど、こういうこときにmultisetを使うんですね。あと、ソート済みのvectorに対しては、push_backして改めてsortするより、挿入位置を探してinsertするほうが速いということを身をもって知りました。Oddnessまったく考察できず。まとめコンテナに関する知識をアップデートしたLISとかそういう系統の知識が全く無いので勉強しないといけない最後慌てすぎた・・・まあ一月ぶりにHighestを(2点だけですが)更新できたので、とりあえずよし。132ABCの3完で、気分的には大惨敗ですね。1315完で、初の青パフォ。034Aしか通せませんでした。