ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

ABC130 D - Enough Array

問題
提出コード

解法

a_{i}を0-indexed( a_{0} ~ a_{N-1} ) で考えていきます。
ある区間[l,r)についてのa_{i}の総和\displaystyle \sum_{i=l}^{r-1}a_{i}K以上となっているとき、r \leqq j \leqq Nを満たす区間[l,j)については全て部分列の総和がK以上となります。
ということで、それぞれのlについて、\displaystyle \sum_{i=l}^{r-1}a_{i} \leqq Kを満たすrの最小値を求め、N-r+1の総和を求めれば答えとなります。
また、lに対するrの最小値を求めた後、l+1に対する区間の右端の最小値を求めるとき、求める右端がr未満になることはもちろんありません。
ということで、あとは尺取り法を用いて、l,rのペアを求めていけばよいです。

感想

尺取り法はよくバグらせるので、二分探索も候補に入れるべきですかね…
ノータイムで考察できるのはうれしいですね。