Educational Codeforces Round 26

スポンサーリンク

A. Text Volume

定義通りに計算.

B. Flag of Berland

転置して 2 回解くと実装量が半分です.

C. Two Seals

すべての 2 枚組を試し,横に並べるか縦に並べるかも両方やります.

D. Round Subset

素因数 2, 5 の個数が問題です.選んだ $5$ 個の個数を決めたときに $2$ の個数の最大値はいくつか?という dp ができます.

E. Vasya’s Function

一度 $g=\gcd(a,b)$ になったら以降 $\gcd(a,b)$ は常に $g$ の倍数です.$g$ の増加回数は少ないので,$g$ が定数の間のシミュレーションをまとめられればよいです.これは $a$ の素因数 $p$ ごとに,次に $b$ が $gp$ の倍数になるのはいつかを求めることでこれが可能です.

F. Prefix Sums

prefix を適当に削除して,$a[0]>0$ としてよいです.$(1,0,0,\ldots)$ の場合を考えると,$k$ 項目は少なくとも $k$ 次式オーダーで増えていくので,長さが十分大きいときは愚直なシミュレーションでよいです.長さが非常に小さいときだけ適当に計算します.

G. Functions On The Segments

$x_1<x\leq x_2$ の場合の計算は全体から他を引けばよいです.よって $x\leq x_1$ や $x_2<x$ での何かを計算できればよいです.

そのような範囲での $y_1, a, b, y_2$ のそれぞれの総和がとれれば答が計算できます.$x_1, x_2$ それぞれに対する wavelet matrix を持つことでこれを達成できます.

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