Technocup 2020 – Elimination Round 1

div1 セットを扱います.

スポンサーリンク

A. Save the Nature

二分探索.個数を決めると価値 x+y,x,y でとれるものの個数が決まり判定ができます.

B. Sequence Sorting

種類は座圧しておきます.一度も触らない値を決めます.この値は連番 $a,a+1,\ldots,b$ であって,$x$ の最後の出現より $x+1$ の最初の出現が後というのが条件です.

C. Paint the Tree

飽和辺全体は各頂点の次数が $k$ 以下です.逆にそのような飽和辺の集合は達成可能です.あとは親辺を選ぶか否かの 2 種の値を計算する木dpでできます.

D. Stack Exterminable Arrays

分割統治を考えます.列 $[a,M), [M, b)$ の結合が空にできるかは,$[a,M)$ と $[M,b)$ 内でなるべく xx を消すという操作をした結果の列が reverse の関係になっていればよいです.これをハッシュで判定します.

E. Wooden Raft

すべての $y$ を試します.各 $y$ に対しては二分探索します.二分探索判定問題では,$x$ を一ヶ所からふたつとるパターと $x$ を二か所からとるパターンを試します.

適当な累積和をもっておくことで,判定問題が $O(A/y)$ 時間で解けるようになります.

F. Football

差が 1 以下というのは不可能で,$k=2$ かつ奇サイクルのときが反例になります.

頂点を倍化して辺 (a,b) を $(a,N+b)$ に置き換え,二部グラフにします.これについて https://codeforces.com/contest/212/problem/A を解けば条件を満たします.

どこかで差が 3 以上になっている色 2 つを取り出してきてその 2 色だけで差が 2 以下になるように変更するという方法でも AC になりました.解説はこっちっぽいけど細かい証明は確認していません.

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