题目描述
解题思路
本题使用等比数列求和公式即可得到以下答案
之后用矩阵快速幂+逆元即可在
l
o
g
log
log的复杂度内解决本题。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#include<queue>
using namespace std;
const long long INF=1e9+7;
long long n,lyx;
long long poww(long long a ,long long b)
{
long long ans = 1 ;
long long base = a % INF;
while(b>0) {
if(b&1!=0)
ans=(ans*base)%INF;
base=(base*base)%INF;
b>>=1;
}
return ans;
}
int main() {
scanf("%lld",&n);
lyx=(poww(3,n+1)-1)*(INF+1)/2%INF;
printf("%lld",lyx);
}