Educational Codeforces Round 35

スポンサーリンク

A. Nearest Minimums

min を求めてその場所を列挙して隣接 2 つを調べる.

B. Two Cakes

二分探索します.

C. Three Garlands

必要条件として,$1/A+1/B+1/C\geqq 1$ があります.

$(1,x,y)$, $(2,2,x)$, $(2,4,4)$, $(3,3,3)$ は YES です.必要条件を満たす他の例は $(2,3,4), (2,3,5), (2,3,6)$ がありますが,公差 2,3 のもので全体の $2/3$ しか被覆できないことからこれらは NO です.

D. Inversion Counting

swap 1 回で転倒数の偶奇は反転します.区間 reverse が swap 何回で行えるかを考えればよいです.

E. Stack Sorting

スタックからの取り出しは,まだ $b$ に行っていないものの最小値に限定されます.

スタックのなかに増大列ができたら詰みです.

F. Tree Destruction

直径を一つ取り固定しておきます.これを最後まで残すように処理していくことが最適です.

直径が残っているうちは各頂点に対する理論値が達成できることから良さそう,というそれっぽい説明はあるのですが,証明はそんなに簡単ではないように感じました.公式解説は割と明らかなように書いてあるけどそうなのだろうか?

その戦略が最適解を与えることを帰納法で仮定して,直径を減らさない初手があるときに直径を減らす戦略が得にならないことを証明するという感じで証明できると思います.

G. Mass Change Queries

値が小さいので,写像 $[0,100]\longrightarrow [0,100]$ の合成をモノイドとして双対セグメント木で解けます.

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