题目链接:H方块与收纳盒
题目思路:刚开始一看以为是DP,仔细看之,发现这是一个斐波那契数列,且规模不大~~
题目核心:f[i] = f[i-1] + f[i-2];
题目优化:矩阵+快速幂【这个显然不是此题目的最优的方法,(flag)这个方法日后再写篇文章吧~~】
题目注意点:注意long long的输出是:lld,不是d(别问我问什么要注意这一点,恩,别问)
题目代码:
#include <bits/stdc++.h>
using namespace std;
long long f[100];
void init(){
f[1] = 1;
f[2] = 2;
for (int i = 3; i < 81; i ++){
f[i] = f[i - 1] + f[i - 2];
}
}
int main(){
init();
int T;
int n;
scanf("%d", &T);
while (T--){
scanf("%d", &n);
printf("%lld\n", f[n]);
}
return 0;
}