欢迎光临散文网 会员登陆 & 注册

算法竞赛2022年第十三届蓝桥杯C++ B组_积木画

2022-04-16 10:32 作者:Clayton_Zhou  | 我要投稿


#include<iostream>  

#include<algorithm>

 

using namespace std;

const int N = 1e7+7, mod = 1e9+7;

int f[N][4];

int n;


int main()

{

cin >> n;

//n=3;

f[1][0] = 1;//  空白2X1

f[1][1] = 0;//  下空白1X1

f[1][2] = 0;//  上空白1X1

f[1][3] = 1;//  拼满2X1

for (int i = 2; i <= n ; i ++ )

{

f[i][0] = f[i - 1][3];

//  f[i - 1][0]+ upside down L   或者 f[i - 1][2]中插入 horizontal I

f[i][1] = (f[i - 1][2] + f[i - 1][0]) % mod;

f[i][2] = (f[i - 1][1] + f[i - 1][0]) % mod; //  f[i - 1][0]+  L   或者 f[i - 1][1]中插入 horizontal I

// f[i - 1][0] + horizontal 2X I, f[i - 1][3] +  I,  f[i - 1][1]+ L

f[i][3] = ((f[i - 1][0] + f[i - 1][1]) % mod + (f[i - 1][2] + f[i - 1][3]) % mod) % mod;

}

/*

for (int i = 1; i <= n ; i ++ ){

printf("%d,", f[i ][0]);

printf("%d,", f[i ][1]);

printf("%d,", f[i ][2]);

printf("%d\n", f[i ][3]);

}*/

printf("%d\n", f[n ][3]);

return 0;

}


算法竞赛2022年第十三届蓝桥杯C++ B组_积木画的评论 (共 条)

分享到微博请遵守国家法律