?
通过这个题终于找回了点找递推公式的信心。。TAT。。
不过真心感觉CF的题目质量都真不错。。。
首先,第n个图形的上方,左下方,右下方的三个大三角形是跟第n-1个是一模一样的,所以是3*f(n-1)。
然后只剩下中间一个倒着的大三角形了,这时可以注意到,其实也跟第n-1个一模一样,只不过上下颠倒过来了,那这里的正着的三角形数就相当于是原来的倒三角形数。
而原来的倒着的三角形数可以用总的减去f(n-1)。而总的是1+2+3+...+2*(n-1)==4^(n-1)。再设g(n),让g(n)=4^(n-1).
那么就把问题转换成了构造一个矩阵A使得
f(n-1) f(n)
A * { } = { };
g(n-1) g(n)
这个矩阵A很容易构造出来。
2,1
0,4
然后用矩阵快速幂求出来即可。
代码如下:
?
#include
#include
#include
#include
#include
#include
#include
#include
#include
?