LoginSignup
1
2

More than 3 years have passed since last update.

Re:ゼロから始める競技プログラミング生活 第1章3『されど茶』

Last updated at Posted at 2020-02-02

学習報告

ABC154参加する気満々だったのに今週なかったorz
なので今回も過去問解いていきます!!

前回はB問題を解いて、次はいよいよC問題だったのですが思いの外難しく、ここ5日間ほどは数をこなそうとA-Cまでの問題をひたすら解いていました。

その途中で問題の難易度によって色が付いていることに気がつきました(遅い)。
ACもらえて喜んでいた問題も色を見れば灰()

つまり、今の自分の実力は灰色...

なら解いてやろう、茶の問題を!!!!

茶に挑戦

というわけで、今回解いていく問題がこちら
image.png

これが茶...指が動かない。
とりあえず出力例を見てみよう。
image.png

なるほど!!この確率の式の数字を一旦適当な変数(出た目をi,コインを振る回数をj)に置き換えてみると、

1/i*(0.5**j)

この式を繰り返し文に入れ、足し合わせていけば答えを求められますね!!

N,K = map(int,input().split())
ans = 0
for i in range(1,N+1):
  j = 0
  point = i
  while point < K:
    point *= 2
    j += 1
  ans += (1/N)*(0.5**j)
print(ans)

これでACいただけました!!

記事ではあっさり書いていますが、これ解くのに1時間かかりました。
もっと考えついてコード書いていかないといけない...
あと、これ以上の難易度の問題を解くには二分探索とか動的計画法とかいろいろ知っておかないといけないみたいなので、それも学習していきます。頭パンクしそう()

ご拝読いただき、ありがとうございました。
次回の更新はABC154後くらいになりそうですがよければまた読んでください。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2