#include <iostream>
using namespace std;
#define M 1000000007
#define N 1001
long long a[N];
long long b[N];
int main()
{
int n; cin>>n;
b[1]=2; b[0]=1;
for(int i=2;i<=n;i++){
b[i]=(b[i-1]*2)%M;
}
a[2]=6; a[1]=1;a[0]=1;
for (int i=3;i<=n;i++){
a[i]=(2*a[i-1]+b[i-1]+4*a[i-2])%M;
}
long long sum=a[n];
for (int i=2;i<=n/2;i++)
{
sum=(sum+(2*(a[n-i]*b[i-1])%M)%M+(2*(a[i-1]*b[n-i])%M)%M)%M;
}
sum=(sum*2)%M;
if (n%2==1)
{
int m=n/2+1;
sum=(sum+(4*(a[n-m]*b[m-1])%M)%M)%M;
}
sum=(sum*2)%M;
cout<<sum<<endl;
return 0;
}
蓝桥杯 格子刷油漆
最新推荐文章于 2022-03-17 21:07:22 发布