怠惰の累積和

技術/競プロ/怪文書/虚無

AtCoder Beginner Contest 026 D - 高橋君ボール1号

問題概要

  f(t)=A*t+B*sin(C*π*t)で定義される関数f(t)が100を取るtを1つ出力せよ。

atcoder.jp

 

 

解法

 数式を見ると、sinが重要そうなので、desmosで試しにA=B=C=1の場合を描画してみるとグニャグニャした増加関数が描画された。

 なので、解を二分探索することによってf(t)=100になるtが1つは求まることになる(∵中間値の定理)

 これを実装して、AC。

atcoder.jp