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

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

Avatar for task4233 task4233
February 07, 2019

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

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

Avatar for task4233

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