Official
E - Sequence Sum Editorial by kyopro_friends
\(A_i\) の取りうる値は \(M\) 通りしかありません。したがって、途中からは同じ数列を繰り返します。
- 繰り返しが始まるまでの項数とその和
- 繰り返しの項数とその和
を計算しておき、繰り返しに入るまでの和、繰り返し部分の和、繰り返し1周に満たない最後の部分の和、の3つに分けて計算することで、\(O(M)\)で解けました。繰り返しに入る前に \(N\) 項目に到達するケースに注意してください。
\( \)
例:\(M=449, A_1=2,N=1000\) のとき
\(A=\{2,4,16,256,431,324,359,18,324,359,\ldots\}\) であり
- 繰り返しが始まるまでの部分 …… \(\{2,4,16,256,431\}\)
- 繰り返し部分…… \(\{324,359,18\}\)
なので、\(1000\) 項目までの和は \((2+4+16+256+431) + (324+359+18)\times 331 + (324+359)\)と求められます。
posted:
last update: