多項式取模與線性遞推優化
阿新 • • 發佈:2019-01-23
最近51nod比賽最後一題,我列出母函式以後發現要求m<=10^16項係數,於是現在來寫一下這個問題。
假設f(x)=f(x)*g(x)+1。
經過詢問黈力,大致明白了多項式取模解決線性遞推式的方法。實際上,若g(x)次數為n,那麼可以看成x^(n+1)=g(x)的一個方程,然後求x^m的值的問題,那麼這相當於多項式快速冪,直接用多項式取模解決即可。
一下是一個另類的做法。(不保證正確)
(根據感性理解),對於任意一個數p,f(x)關於f(x-p),f(x-p-1),...,f(x-p-n)的轉移應該都是一樣的。考慮f(x)的x^k項係數,實際上可以看成x^t->x^(k+t)的一個轉移(可以將<0的項看成是0)。
t(x)=t(x)*g(x)+r(x)
那麼可以預處理(1-g(x))^(-1),然後與r(x)卷積後模x^n,得到t(x)
這樣就可以預處理x^(2^i)~x^(2^i+n)的係數,同樣就可以得到x^m了。
考慮到實現難度。。並不推薦這種做法。