Educational Codeforces Round 32

スポンサーリンク

A. Local Extrema

書いてある通りに判定.

B. Buggy Robot

縦方向・横方向それぞれ独立に考えればよいです.

C. K-Dominant Character

26 回解けばよいです.その文字が含まれない最大長が簡単に計算できます.

D. Almost Identity Permutations

$p_i\neq i$ となるインデックスの組み合わせと決めた場合の数え上げは攪乱順列の個数です.

E. Maximum Subsequence

いわゆる半分全列挙(meet in the middle)です.

F. Connecting Vertices

dp0[l][r] を頂点集合 $l,\ldots,r$ を木にする方法.

dp1[l][r] をすでに $l,r$ だけは同じ連結成分になっているときに頂点集合 $l,\ldots,r$ を木にする方法.

として区間 dp ができます.dp0 の計算では,$l$ から出る辺のうちで一番番号が大きいもので場合分けをします.dp1 の計算では $l$ から辺が出るなら同様に番号の大きいもの,出ない場合には dp0[l+1][r] として計算できます.

G. Xor-MST

最上位ビット $2^k$ がないもの,あるもので分けます.クラスカル法を考えるとこれら 2 グループを結ぶ辺は高々ひとつしかないことが分かります.この重みを求めてあとは各グループに対して再帰的に計算します.

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