keidaroo’s diary

底辺系競プロer

ABC107 Median of Median

感想

精進不足だなあと(解説読んでも3時間はバグなおしにかかった)

解説

転倒数を求め始めるところまでは公式解説を参照
https://img.atcoder.jp/arc101/editorial.pdf

僕は二分探索で
決めた数より小さい値が半分以下のものをlowerにする
というのを繰り返しました。

その結果
https://beta.atcoder.jp/contests/abc107/submissions/3104934

見事にWAしました

原因

単純に頭がわるい、っていうのはおいておいて、

累積和の気持ちに!!!なれなかった!!!

転倒数を数えて足すだけだと実は足りなくて、この場合累積和は[0]の和から始まっていて、imos[0]!=0であるため、l=始めの時をかんがえていませんでした 
(どういうことかというと、70行目に+(imos[i]<0)を加えてあげるべきということです)

もうひとつ間違っていて、v[i]累積和は半開区間!累積和は半開区間!!!!

なのでl==rのときは累積和上ではimos[r]-imos[r-1]になるんですね!!たさなくていい!!!

頭の悪さは仕方ないので、事前にメモした後に解くこと、累積和の気持ちになることを意識してがんばります!!!