HRBUST - 2186 铺地砖(思维)
这次我们用2 * 1的地板砖来铺地,地是一块3 * n的矩形,你能告诉我有多少种铺地的方案么?
Input
本题有多组测试数据,每组测试数据包含一个正整数n(0 <= n <= 40)。
Output
对于每组测试数据输出铺地的种类数。
Sample Input
4
5
6
Sample Output
11
0
41
题意:略,正常人能看懂。
题解:看到例子5输出0,仔细思考,只要是奇数都是0,偶数自己画出2的来,然后结合例子,推出公式,公式是什么呢,看代码,就能懂,上代码:
#include
using namespace std;
typedef long long ll;
ll a[50];
void init(){a[0]=1;//这个需要初始化为1,很容易想到a[1]=0;a[2]=3;for (int i = 3; i <= 40;i++){if(i&1) a[i]=0;else a[i]=a[i-2]*4-a[i-4];//递推式}
}
int main(){init();int n;while(cin >> n){cout << a[n] << endl;}return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
