Problem258 メモ
コンテンツ
けっこう,(といっても,4,5日前だが)に解いた.
問題文は簡単.
g(k) = 1 if 0 <= k <= 1999
g(k) = g(k-2000) + g(k-1999) if 2000 < k
find g(10^18) (mod 20092010)
普通のFibonacciだったら,簡単ですが.
そう簡単にはいかない.まぁ,それが今回の問題ですか.
Haskellで実装したら,3分位.
C++で実装したら,3秒位.
NTLをつかったら,0.2秒位.
NTLスゲー.
おそらく乗算に,FFT乗算を使っているからだろう.
しかし,最近C++の速さが魅力になってきた.
# Haskellも内部ではFFT乗算使ってる?
作成者 Toru Mano
最終更新時刻 2023-01-01 (c70d5a1)