#include<stdio.h>
long long quickpow(long long a,long long b,long long c)
{ long long ans=1;
while(b)
{
if(b&1)
ans=ans*a%c;
b/=2;
a=a*a%c;
}
return ans;
}
long long X,y;
long long gcd(long long a,long long b)
{
int t,d;
if(b==0)
{
X=1;
y=0;
return a;
}
d=gcd(b,a%b);
t=X;
X=y;
y=t-(a/b)*y;
return d;
}
int main()
{
int n;
scanf("%d",&n);
gcd(2,1000000007);
if(X<0)
X+=1000000007;
n++;
printf("%lld\n",(quickpow(3,n,1000000007)-1)*X%1000000007);
return 0;
}
搞半天也没理解 ,总结下就是先求出来3的n+1次幂,再减去1,乘以(q-1)对mod的逆元,再mod就出来了