太困了就睡了觉,还有20分钟的时候醒了去了趟cs(厕所),回来后推
了出来。。。最后的6分钟前三分钟纠结要不要写、后三分钟写完没有运行直
接提交,无悬念wa囧~;今儿个随便参加了场比赛竟然有此题原题、怒秒之、
1Y。。。
了出来。。。最后的6分钟前三分钟纠结要不要写、后三分钟写完没有运行直
接提交,无悬念wa囧~;今儿个随便参加了场比赛竟然有此题原题、怒秒之、
1Y。。。
#include"iostream"
#include"cstdio"
#include"cstring"
using namespace std;
typedef long long bint;
const int N=1005;
const int mod=1000000007;
int pow2[1005];
bint ans_cor[N],ans[N];
void init()
{
int i;
pow2[0]=1;
for(i=1;i<=1000;i++) pow2[i]=(2*pow2[i-1])%mod;
ans_cor[1]=1;
ans_cor[2]=6;
for(i=3;i<=1000;i++)
ans_cor[i]=(2*ans_cor[i-1]%mod + ( 2*2*ans_cor[i-2]%mod + pow2[i-1] ))%mod;
}
bint solve(int k)
{
if(ans[k]) return ans[k];
int i;
for(i=2;i<k;i++)
ans[k]=(ans[k] + 2*( pow2[i-1]*2*ans_cor[k-i] + 2*ans_cor[i-1]*pow2[k-i] )%mod)%mod;
ans[k]=(ans[k] + 4*ans_cor[k])%mod;
return ans[k];
}
int main()
{
int n;
init();
memset(ans,0,sizeof(ans));
ans[1]=2;
ans[2]=24;
while(scanf("%d",&n)!=-1)
printf("%lld\n",solve(n));
return 0;
}