解けなかった問題の簡単な説明を覚え書き程度に残す.
ABC146E
難しくない?めげそう.
とりあえず累積和をとる(らしい).とすると,求めるのは
なるi,jのペアの個数.もちろんなのでナイーブには解けない.
こんなときにはしゃくとり法が使えるらしい.式を
と変形する(この変形すら思いつける気がしない).を改めてとする。すると,iを固定したときに,求めるのは[i,i+k-1]のなかの,S_iと等しいSの個数.これは区間のSの個数をmapで管理しておいて,区間をずらすたびにそれらを増減させるとで解ける.はmapのコスト.
ABC146F
難しくない?(2回目) でもFにしては簡単らしい.というのも
解き方1
貪欲でいける.後ろから飛べるだけ飛べばOK.もしスタートからゴールまでのルートが存在すればこの方法で必ず解が見つかる.
複数個の解があったとき,このような解のとり方が辞書順最小となることも示せる.なんてこったい.
解き方2
貪欲じゃなくても解けるみたい(強い人はこっちがすぐ思いつくのかな).
dp[i]:地点iからゴールまでの最小手数とする.するとこれはdp[i+1]~dp[i+M]までの最小値+1になる.
つまり[i+1,i+M]の区間内の最小値をいい感じの計算量で求められたらいい.これはRMQを使うと実現できる.
dequeでも出来る.らしい.あとでやらねば.