ABC234 参加記録
C - Happy New Year!
非負整数の2進数表記の1を2に変換する操作を考えます。操作後の値をとします。すると、以下が言えます。
- とは一対一対応する。
- 非負整数の変換によって、0,2のみからなる整数の全てを得られる。
- ならである。
以上から、の2進数表記の1を2にすると答えを得られます。
提出コード
D - Prefix K-th Max
ウェーブレット行列が使えます。
ウェーブレット行列では、以下の関数がで使えます。(はの要素の最大値で、今回は)
- :半開区間の番目に小さい値を返す。
を0-indexedとすれば、について、で答えが計算できます。
計算量は、のウェーブレット行列の構築がボトルネックとなり、です。
提出コード
E - Arithmetic Number
整数の桁数をとします。
候補となる等差数の制約を考えてみます。
- 桁数は
- 公差は
- 最上位桁は、
更に、実際にを構築する時に、回の計算が必要になります。
ワーストケースのおおよその計算量は、
となり、十分に小さいので、全探索可能です。
の各桁の計算の過程で、桁の数がまたはとならないものだけを答えの候補とします。その中で、を満たすもののうち、最小のが答えです。
なお、条件1は桁の整数について、必ずゾロ目が含まれ、これは公差0の等差数になることより導けます。
提出コード