【快速幂】LightOJ - 1213 Fantasy of a Summation
https://vjudge.net/problem/LightOJ-1213
题意:
计算k*n^(k-1).
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll MOD;
ll powmod(ll a,ll n,ll mod)
{
ll ret=1;
a%=mod;
while(n)
{
if(n&1)ret=ret*a%mod;
a=a*a%mod;
n>>=1;
}
return ret;
}
int n,k;
const int MAXN=1000+10;
ll arr[MAXN];
int main()
{
int t;
scanf("%d",&t);
int Case=1;
while(t--)
{
cin>>n>>k>>MOD;
for(int i=1;i<=n;i++)
cin>>arr[i];
ll ans=1;
ans=k*powmod(n,k-1,MOD)%MOD;
ll sum=0;
for(int i=1;i<=n;i++)
{
sum=(sum+ans*arr[i]%MOD)%MOD;
}
printf("Case %d: %lld\n",Case++,sum);
}
return 0;
}