Educational Codeforces Round 20

スポンサーリンク

A. Maximal Binary Matrix

先頭から順に使うかどうかを決めていきます.コスト $2$ または $1$ でとっていくことになりますが,最後のマスがコスト $1$ なので mod 2 事情で詰む心配は不要です.

B. Distances to Zero

左右に最も近い $0$ の位置を調べます.

C. Maximal GCD

gcd の max ということは単に common divisor の max でよいです.すべて $d$ の倍数にできるか判定します.対象は $n$ の約数だけでよいです.

D. Magazine Ad

二分探索判定問題が貪欲に解けます.

E. Roma and Poker

dp して復元します.

F. Coprime Subsequences

$f(d)$ をすべてが $d$ の倍数であるような空でない部分列の個数.

$g(d)$ を gcd がちょうど $d$ の倍数であるような空でない部分列の個数.

すると $f(a) = \sum_{a\mid b}g(b)$ となるので,これらは約数関係に関するゼータ・メビウス変換でうつりあいます.$f$ を調和級数 $O(A\log A)$ 時間で求めたあとメビウス変換で $g$ を求めます.

G. Periodic RMQ Problem

動的遅延セグ木で解けます.初期状態が単位元で埋まっているとかではないですが,初期状態から変更がない状態のノードについては答が別途計算できるのでよいです.

(先読みして座圧すれば普通に小さいセグメント木でも解けます.)

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