以下の内容はhttps://emtubasa.hateblo.jp/entry/2019/05/26/133542より取得しました。


ABC127 C - Prison

問題
提出コード

解法

  • sum[i] = i枚目のカードを用いて通ることができるゲートの個数

とすると、sum[i] = Mとなるようなiの個数が答えになります。
ということで、各ゲートについて与えられる区間[L_{j},R_{j}]について、sum[L_{j}],sum[L_{j}+1],...sum[R_{j}]に1を追加する、という操作をしてあげれば、i枚目のカードを用いて通ることができるゲートの個数を求めることができます。
単純に加算していくと間に合わないので、いもす法を用います。
sum[L_{j}]に1を加算し、sum[R_{j}+1]から1を減らしてあげて、sum[1]から順番に累積和を取っていくと、O(N)で求めることができます。

感想

本番は、いもす法を利用して脳死で解きましたが、よくよく考えるとL_{i}の最大値とR_{i}の最小値だけを見ればよいのですね…
Nの制約が大きいと解くのに時間がかかった可能性があります。




以上の内容はhttps://emtubasa.hateblo.jp/entry/2019/05/26/133542より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14