Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AtCoder AGC 001 B - Mysterious Light 考察と実装

task4233
February 07, 2019

AtCoder AGC 001 B - Mysterious Light 考察と実装

AGC001-B Mysterious LightのEditorialの理解の足しになるように, という思いで作成しました.

task4233

February 07, 2019
Tweet

More Decks by task4233

Other Decks in Programming

Transcript

  1. N, Xについて一般化 先ほどまでの図で反射した光に周期性があったことが分かるは ず. その周期性とは以下の3つ. 1. 2回反射した後の領域に, 平行四辺形が出現すること 2. N,

    N-Xの後の反射において, 2回ずつ同じ距離を進むこと 3. 出来た平行四辺形の辺が等しい時に, 反射が終わること それぞれ見ていく. 12
  2. 3. 実装 - 高速化(1) 再帰関数をじーっと見ていると, return f(mn, mx-mn) + 2

    * mn の部分が無駄に見えてくる. (なぜなら, mx-mnというパラメータの関数を呼び出す度に2*mnを 加算するので, その加算をまとめて[mx/mn]* 2 *mnとすればまと められるから) ※[ ]はガウス記号. 18