好幾次被遞歸數列求和虐,以前一直不知道這類題型怎麼做,這次好好刷了這一類題。
1:hdu1757 http://acm.hdu.edu.cn/showproblem.php?pid=1757
題意:一直f(n) = a0*f(n-1) + a1*f(n-1) + ... a9*f(n-10)
只要構造一個友矩陣既可以,連續自乘n次後,再乘以向量(a0, a1, .....a9)後就可以的到(an+1, an+2, a+10)。就是這麼簡單。友矩陣的構造也很簡答(n*n的矩陣中右上角爲單位矩陣,最後一行爲f(n)的係數)。
詳見:http://www.matrix67.com/blog/archives/276
2:hdu2604 http://acm.hdu.edu.cn/showproblem.php?pid=2604
題意:求長度爲L的E-queues
遞推式爲:f(n) = f(n-1)+f(n-3)+f(n-4)。原理跟上題一樣
3:hdu3306 http://acm.hdu.edu.cn/showproblem.php?pid=3306
題意:求sn = a0^2 + a1^2 + a^n (其中an = x*an-1 + y*an-1)
其實只要求這個遞推式即可:sn = sn-1 + an^2 = sn-1 + x^2*an-1^2 + y^2*an-2^2 + x*y*an-1*an-2
其他同上題
4:hdu1005 http://acm.hdu.edu.cn/showproblem.php?pid=1005
好吧,我把這題水題也歸類到這裏。剛開始刷題的時候都不知道這題怎麼做但是,現在做起來就比較輕鬆啦,也就是用矩陣快速冪啦。。。多做這種題,爭取寫個比較順手的模板吧。。
參考代碼:http://blog.csdn.net/robotcator/article/details/25006119