ARC139

2完。体調は戻ったし、AHCの疲れも感じなかった。やはり悔しさはある。

A - Trailing Zeros

A_1は小さくて損しない。つまり貪欲に条件を満たす最小のA_iを求めていけばいい。T_iの動きによって複雑になりそうな心配があったけど、書いてみると下T_i+1桁は確定で、A_(i-1)をそのように書き換え増えてないなら2*2^T_iを足すだけ。

(解説を見て)答えが意外と大きくなるんだな。言われてみればそうだけど。64bitに収まるかの確認は必要ないと思い込んでいた。

B - Make N

1とAとBがあって、1のコスパがその3個の中で一番悪いときだけ考えればいい(他はまあ簡単)。Bのコスパが一番いいとする(そうでなければswapする)。全くわからない。extgcdを考えていたが、色々なケースが湧き出してきて無理。他の方法を考えようにも、どうしたってextgcdの不規則さが顔を出す。Bを使えるだけ使って減らしていくのも、三分探索とかには全くならないよね。Aのコスパがどっちに近いかで分けたりも試したが思考が進まない。

Aの値で平方分割というまさかの展開。制約からの思い込みが正直あった。Aが大きければ、Aを使う個数を全探索できる。Aが小さければ、1を使う個数を全探索できる(Bを使う個数を最大から減らしていくと1の個数は周期があり周期の長さは高々A(今考えると本当か??(1の個数は高々A通りで、1の個数が同じならBを1個減らしたときの1の個数も同じなので正しそう)))。凡ミスで1WAしてからAC(こういう問題ではよくある)。

C - One Three Nine

座標平面で考えると、X+Y*3が同じになるのは2点が一定の傾きの直線上にあるとき。2種類の傾きがあって、そういう直線がぎっしりあって、どの直線にも複数の点が乗らないようにする。片方の傾きだけで考えて1個ずつ上の直線に移動していくことを考える。もう片方の傾きで見てその中でできるだけ左のものを選ぶ貪欲成立しない?と思ったけどサンプルすら合わなかった。