AtCoderの過去問埋め

ARC057のA

Aが0のときとKが0のときがコーナーケースっぽくて怖いが、最初のターンで必ず1円は増えるのでKが0のケースだけ考えればよい。Kが1以上なら指数関数的に増えるのでシミュレーションすればよい。

ABC043のD

パッと見なんもわからんタイプ(わりとよくある)。アンバランスな文字列を長さ2から始めて長さ5くらいまで具体的に挙げてみる。

○○
○○●
○○○●
○○○●●

けっこう同じ文字が占める割合が多い。例えば5文字中3文字が同じなら、同じ文字が隣り合わないようにするなら交互に置くことになる。連続して同じ文字、とまでは行かなくても、1個おきには現れる、というかアンバランスな文字列の少なくとも1か所はそうなってるはず。連続した3文字を調べれば十分だし、逆にアンバランスな部分文字列があればそれで検出されるから必要でもある。長さ2の場合もあるので場合分けする。

ABC043のC

分散とかの求め方を復習する。a_iの和とa_i^2の和を持っておけば大抵なんとかなる。感覚ではわからなかったのでがっつり計算した。コンテストに参加していれば-100から100まで試すが、まあせっかくなので計算量を落とす。

ABC044のD

難しそう。なんかmodなんとかで一致するような性質があるとかねえよなあ。桁の和というより再帰的な定義の式に戻ると何かあるとか?ない。nが小さければ全部試せばよい(bがnより大きくなるとfは変化しなくなるため)。制約が10^11だし、こういう問題は平方分割みたいな何かがあるはずだ。「あるはずだ」ってのはおかしいけど、ABCに出題してるんだからまああるはずだ。頑張って違う向きから見ることに成功した。(記憶が薄れてきたのでここまで)