Cheat
- 2. 問題概要
● 数列Aが次のように定義される。
A[1] = 0
A[2] = 1
A[i+2] = A[i+1]^2 + A[i]^2
● A[n] % Mを求めよ。
● n < 2^31
● M = 1999 or 10^9 + 7
- 3. 部分点解法
● A[i]は直前2項だけで決まる。
● 直前2項の mod Mでの値の組は、たかだか
M^2個しかない。
● 鳩ノ巣原理より、M^2回程度回せば必ずルー
プを検出できる。
● ループを見つけたら、その周期の長さを利用
してA[n]での値を求めることができる。
- 4. 満点解法
● ローカルで計算して埋め込む。
● もちろん全部埋め込むのは無理なので、適当
な箇所の連続する2項を埋め込む。
● 埋め込み用データは、マシンスペックにもよる
が1~5分程度で用意できる。