以下の内容はhttps://kaage.hatenablog.com/entry/2020/07/08/004354より取得しました。


AGC046-C Shift

数え上げは言い換えの質

問題リンク

解法

0の前の1の数を並べて数列に変換する。

01100110\rightarrow[0,2,0,2,0] みたいな感じ

この数列と文字列は一対一対応をもち、この数列を A, もとの文字列の0の数を M とすると、操作は

0\leq i\lt j\leq M, A[j]\gt 0 なる i,j を選び、A[i] に 1 加え、A[j] から 1 減じる、と言い換えられる。

この操作からできる数列を数えればいいので、累積和と、もとの数列との差の絶対値の総和を持っておけばDPできて、O(N^4) になるが、間に合う。

感想

考察が終了してからDPに落とし込んだり、数列にして扱いやすくするのが苦手なので鍛えていきたい




以上の内容はhttps://kaage.hatenablog.com/entry/2020/07/08/004354より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

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