tipstar0125 / atcoder

atcoder
6 stars 0 forks source link

2数が同期する周期 #6

Open tipstar0125 opened 11 months ago

tipstar0125 commented 11 months ago

ABC209 D - Marking https://atcoder.jp/contests/abc290/tasks/abc290_d

tipstar0125 commented 11 months ago

2つの数をそれぞれ足していって、最小で同じになる(同期する)数を考える。 ⇒最小公倍数

例えば、2つの数A, Bがあったとして、A=12, B=9のときの最小公倍数は36であり、実際に足していくと同期するタイミングと一致する。 Bに関してmod Aをとると、最小公倍数の倍数が周期/B個現れ、2周期以降は同じ数列が繰り返される。 A: 0, 12, 24, 36 B: 0, 9, 18, 27, 36 (B mod A: 0, 9, 6, 3, 0)

tipstar0125 commented 11 months ago

2つの変数N, Dで考える。

tipstar0125 commented 11 months ago

lcm(N, D)/Dステップで0に帰ってくる