アットウィキロゴ
競技プログラミング用 知識集積所
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

競技プログラミング用 知識集積所

ABC440C - Striped Horse

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識

B以下レベルの内容は省略

考え方

愚直にやると、もちろんTLE。
ということで工夫を考える。

問題の色塗りルール的に、位置の差が2Wの倍数であるところは、必ず同じ色になる。
ということは、コストの加算もまとめて扱ってよい。
ということで、まずは位置そのものを2Wで割った値ごとにコストを合計して、長さ2Wのvectorにしておく。

あとはここから連続W個の区間和の最小値を求めればいい。
区間の長さが一定なのでsliding window法を使うことになる。
余り2W-1と余り0が循環で繋がっているところは、データを2周分用意した長さ4Wのvectorに作り直すことで対応する。
(厳密には、W-1個をコピーした3W-1個以上あればよい)

解答例


注意点


別解

タグ:

sliding window法
最近更新されたスレッド
ウィキ募集バナー