Upload
tomerun
View
194
Download
0
Embed Size (px)
Citation preview
Don't Think Seriously!
Writer: komiya
問題概要
● 数列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
部分点解法
● A[i]は直前2項だけで決まる。● 直前2項の mod Mでの値の組は、たかだか
M^2個しかない。● 鳩ノ巣原理より、M^2回程度回せば必ずルー
プを検出できる。● ループを見つけたら、その周期の長さを利用
してA[n]での値を求めることができる。
満点解法
● ローカルで計算して埋め込む。● もちろん全部埋め込むのは無理なので、適当
な箇所の連続する2項を埋め込む。● 埋め込み用データは、マシンスペックにもよる
が1~5分程度で用意できる。