Web系エンジニアのアウトプット練習場スマートフォン用の表示で見るWeb系エンジニアのアウトプット練習場エンジニアリングと書評が中心。Python復習によってABC136のE問題の解法を理解したので、ご紹介します。割り切れる」ということに気付けるかどうかです。約数をすべて試していけば良さそうです。計算量で以下のように作成できます。回以内の操作で条件を満たせるかどうかを試していきます。約数に持つように調整します。)の2パターンがあります。回の操作が必要だということになります。大きいものから)プラス方向の調整に切り替えていきます。小さくすることができるので、最小の操作回数を求めることができます。約数に持たせることができます。これを踏まえて、先程のコードの続きを書くとこんな感じになります。break上記は尺取法を用いた解法ですが、実は、これにはもう一個別解があります。マイナス方向に調整する要素と、プラス方向に調整する要素の境界を一発で求める方法です。根幹の考え方は同じなのですが、以下の考え方も踏まえると上記の解法よりも楽に解くことができます。全てマイナス方向に調整した場合の変更量の総和。よって)]が必要な操作回数の最小値。以上を踏まえるとこんなコードになる。breakだいぶシンプルになりました。割り切れる」に気付けなかったので、ここまではたどり着けませんでした。約数を求める方法すら知らなかったので、良い勉強になりました。ABC137は参加できませんが、これからもちゃんと復習していこうと思います。月別アーカイブリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!h-sakanoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。