Educational Codeforces Round 36

スポンサーリンク

A. Garden

約数であるもののうち最大のものを使います.

B. Browser

左側を処理したあと右側を処理する,その逆,を計算.

C. Permute Digits

prefix を決めると $b$ 以下にできるかの判定は可能です(小さい順に並べる).すると先頭から順に決めていくことができます.

D. Almost Acyclic Graph

ひとつ消して toposort 可能か確認.

E. Physical Education Lessons

座圧して遅延セグメント木.

F. Imbalance Value of a Tree

max – min の和を求めるので,max の和を求める問題と min の和を求める問題が解ければよいです.$-1$ 倍して考えると min の和が求まればよいです.大きな頂点から union いくとき,union されるタイミングでそれぞれの頂点集合から 1 点ずつ選んだパスがその点を最小値として通ります.

G. Coprime Arrays

各 $d$ に対して $d$ の倍数を数えてその $n$ 乗をメビウス関数の重みで足すことになります.$i$ が増えるたびに $d$ として $i$ の約数部分だけが変わり,変更回数の $i$ にわたる合計回数が $O(k\log k)$ になるので答えを差分更新できます.

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