题意:2*N网格,从左上走到右下,8个方向可以移动,总共有多少种方法?
第一列和最后一列:每列有2中可能;
中间列:每列有3中可能;
//color game
#include <stdio.h>
const long long mod=1e9+7;
long long QuickPow(long long a,long long n){
long long tmp=a;
long long ans=1;
while(n){
if(n&1)
ans=tmp*ans%mod;
tmp=tmp*tmp%mod;
n>>=1;
}
return ans%mod;
}
int main(){
long long n;
while(scanf("%lld",&n)){
if(n==1)
printf("1\n");
else
printf("%lld\n",4*QuickPow(3,n-2)%mod);
}
return 0;
}