ABC076-B - Addition and Multiplication を解く
ABC076-B - Addition and Multiplication
初期値 1 に対して N回、「2倍する」か「Kを足す」かを行ったときに
考えうる最小の値を求める問題
常に小さくなるような選択を続ければ、最終的な値も最も小さくなるはず
よってN回ループを回して、1回毎に「どちらを選んだ方が小さくなるか」を
確認していく方法で解いてみる
以上を踏まえて書いたコードを以下に示す
提出したコード
# 入力 N=int(input()) K=int(input()) # 初期値 a=1 for i in range(N): a=min(2*a,a+K) # 出力 print(a)
提出結果はACでした
>常に小さくなるような選択を続ければ、最終的な値も最も小さくなるはず
上記にてこのように書いたが
これについては、解説PDFでは数式による証明が行われている
興味のある方は読んでみてください