AtCoder Beginner Contest 228 E - Integer Sequence Fair
题目:Atcoder E - Integer Sequence Fair
E - Integer Sequence Fair (atcoder.jp)
题意:
反正其实就是求m的(k的n次方)
思路:
求m的(k的n次方)的次方,mod为998244353;
1.如果m是mod倍数直接输出0,
2.M^(P-1)%P=1%P;
所以可以设a,为(kn)/(P-1),b为(kn)%(P-1),原式子就转为M(a*(P-1)+b)=M(P-1)a*Mb,
转为(1a)*Mb
代码:
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mod=998244353;
int qmi(int m, int k, int p)
{
int res = 1 % p, t = m%p;
while (k)
{
if (k&1) res = res * t % p;
t = t * t % p;
k >>= 1;
}
return res%p;
}
signed main(){
int n,m,k;
cin>>n>>k>>m;
if(m%mod==0) cout<<"0"<<endl;
else{
int ans=qmi(m,qmi(k,n,mod-1),mod);
cout<<ans<<endl;
}
return 0;
}

浙公网安备 33010602011771号