Educational Codeforces Round 62

スポンサーリンク

A. Detective Book

いままで出た最大の $a_i$ を保持してシミュレーション.

B. Good String

最後に戻る文字の左側や右側が全消しされる瞬間のことを考えると,最後に残る文字は「先頭にある右」「末尾にある左」のどちらかであることが分かります.

C. Playlist

min の側でソートして,どれが min になるかを決めると,ある集合から上位 $K$ 個を貪欲に選ぶということになります.集合がインクリメンタルで $K$ が定数なので,prique で上位集合を管理できます.

D. Minimum Triangulation

区間 dp です.頂点 $L, \ldots, R$ 部分について,$L, R$ を含む三角形が何かを考えます.

E. Palindrome-less Arrays

長さ $3$ の回文がないという条件です.するとインデックスが偶数と奇数の部分それぞれ独立に扱えて,隣接文字が異なるという条件になります.

F. Extending Set of Points

$(x,y)$ を二部グラフにおいて左側の $x$ と右側の $y$ を結ぶ辺と見なします.拡張は,各連結成分が完全二部グラフになるまで辺を追加するということになります.よって連結成分分解において各成分の左・右側の頂点数を管理できればよいです.

削除クエリがあるので,追加と rollback に帰着します.

G. Double Tree

まず $(v,0)$ と $(v,1)$ の間の距離を求めて,これらの間の辺重みをこの距離で置き換えます.これは $(v,0)$,$(w,0)$,$(w,1)$, $(v,1)$ の順に辿るような経路が探索対象で,$v$ から出るパスについての最適化になります.

すると,$(v,i)$ から $(w,j)$ までの最短路は第一成分について木上のパスをたどるとしてよくなるので,何らかのパスクエリになります.

どちらのパートも重心分解をして根を通る場合に帰着することで解くことができます.

CodeForces
スポンサーリンク
シェアする
maspyをフォローする
maspyのHP
タイトルとURLをコピーしました