ブログ名

競技プログラミングやお歌のお話をする高菜です。

Educational Codeforces Round 82 (Rated for Div. 2) 解法

コンテストページ

https://codeforces.com/contest/1303

✔A - Erasing Zeroes

最も左と最も右の '1' を探してその間を埋めます。全部 '0' のときだけが例外です。

✔B - National Project

お天気の日の数の条件と合計の日数の条件のうち厳しい方です。 合計の方は n ですね。 お天気の方は、ceil(n/2) を a+b で割った商と余りを見るとわかります。

✔C - Perfect Keyboard

パスグラフの直和になっていればよいです。 孤立点は先に処理をします。 次数が 1 の頂点を探してそこからたどっていくことを繰り返せば良いです。

✔D - Fill The Bag

下から順にみて、纏めていきます。 必要ならば使います。 足りなければできるだけ近い上から崩してくればよいです。 合計が足りるかどうかは初めにチェックをすると良いです。

✔ E - Erase Subsequences

t = u + v と切りたいです。 切れ目を全探索してそれぞれ 2 乗時間で判定です。

s を左から見て、dp[ そこまでで作れた u の接頭辞の長さ ] = 作れる v の接頭辞の最大長さ を DP です。そもそも u がその長さ作れないときには -1 などにして例外処理が必要です。最後まで見て、dp[ len(u) ] = len(v) になっていれば合格です。

ところで私は、u で使ったものを v で再利用できると誤読していて、なんだ簡単じゃないですか!! となっていました。これで E はさすがにと思って読み返して気が付きました。うう……

✖F - Number of Components

順位表を見て読み飛ばしました。

✖F - Sum of Prefix Sums

わかりませんでした。