D]競技プログラミングhttps://atcoder.jp/contests/abc153/tasks/abc153_d解説https://atcoder.jp/contests/abc153/submissions/9783601操作について考えてみる。モンスターの体力が1なら、体力は0になる。これは分岐もしないので、そうなる。モンスターの体力がXなら、X/2とX/2になる。ここで大切なのが、分裂後のモンスターの体力は等しいという所。独立に操作は進むので、どのように操作を行っても同じ結果しか得られない。よって、最小値とあるが、実際はモンスターに勝つまでに行う回数の総和が得られればいい。高速にこれを答えるために、全てのモンスターを同時に扱っていくことを考える。全てに操作を行うと、次はX/2が2つ。全てに操作を行うと、次はX/4が4つとなる。1シーズン終えるごとに、数は半分、個数は倍になることが分かる。各シーズンごとに個数分の回数が必要となるので、Xをどんどん2で割って行って、同時に個数も2倍していきながら足すことで、1+2+4+8+...のように答えを求めることができる。F]月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。