Codeforces Round 998

スポンサーリンク

A. Fibonacciness

$a_3=x$ だと $+1$ 点,という条件を列挙します.

B. Farmer John’s Card Game

各ターンで出るカードは確定しています.min などでソートして正しいものを持っているか確認します.

C. Game of Mathletes

最大マッチングが Bob の上界ですし,最大マッチングを達成するのも簡単です.

D. Subtract Min Sort

条件が成り立っていないならば,どこかに操作するしかありません.どこかに操作するとそこに $0$ が出来るので,そこより手前もすべて $0$ にするしかありません.

結局,$i$ 昇順に「成り立っていないならば i に操作する」として判定すればよいです.

E. Graph Composition

$G$ は連結成分分解の情報しか要らないです.$F$ は,まずは $G$ で異なる成分の間にある辺をすべて消す必要があります.そのあとは,$G$ の連結成分ごとの問題になります.$F$ の連結成分が複数あるうちは辺をひとつ使ってマージしていきます.

F. Multiplicative Arrays

$a$ の $1$ でない項は $O(\log k)$ 個しかありません.$1$ でない項だけを使った列を数えておき,そこへ $1$ を挿入することを考えます.

G. Bugged Sort

表に $a_i$,裏に $b_i$ が書いてあるカードだと思って考えます.操作は,「$2$ 枚の位置を入れ替え,$2$ 枚の表裏を入れ替える」となります.

$n\geq 3$ より,単に $2$ 枚の表裏を変えることもできます:$abc\to BAc\to BCa\to ACb\to ABc$.

結局「$2$ 枚の位置を入れ替える」「$2$ 枚の表裏を入れ替える」どちらも独立に行えます.

まずカードの並び順について,$a_i+b_i$ でソートしたものしか可能性がないです.あとは表裏です.

最終的に初期状態と表裏が逆になるカードは偶数枚で,逆にそのような向きはすべて実現可能です.あとは左のカードから順に,最後のカードの向きとこれまでの反転回数の偶奇を持って dp すればよいです.

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