好几次被递归数列求和虐,以前一直不知道这类题型怎么做,这次好好刷了这一类题。
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.youkuaiyun.com/robotcator/article/details/25006119