题解
2025-01-07 19:23:11
发布于:广东
9阅读
0回复
0点赞
首先用计数原理计算出答案为,然后使用快速幂
#include<bits/stdc++.h>
#define int long long
#define MOD 1000000007
using namespace std;
int t(int a,int b)
{
return ((a%MOD)*(b%MOD))%MOD;
}
int p(int base,int power)
{
if (power==0)
return 1;
if (power==1)
return base%MOD;
int ans;
if (power%2==0)
{
int tmp=p(base,power/2);
ans=t(tmp,tmp);
}
else
{
int tmp=p(base,power/2);
ans=t(base,tmp);
ans=t(ans,tmp);
}
return ans%MOD;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int T,n;
cin >> T;
while (T--)
{
cin >> n;
int p1=p(3,n),p2=t(3,p(2,n));
int p3=(p1-p2+MOD)%MOD;
cout << (p3+3)%MOD << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个