题意:
略
思路:
根据给定的循环推出每个元素出现的次数,是一个快速幂,,后面就简单了,,带详细更新
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<set>
#include<queue>
#include<stack>
#include<map>
#define PI acos(-1.0)
#define in freopen("in.txt", "r", stdin)
#define out freopen("out.txt", "w", stdout)
#define kuaidian ios::sync_with_stdio(0);
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 1e5 + 7, maxd = 1e5 + 7;
const ll mod = 1e9 + 7;
const int INF = 0x7f7f7f7f;
ll n, k, m;
ll q_pow(ll a, ll n) {
ll ret = 1;
while(n) {
if(n & 1) ret = (ret * a) % m;
a = (a * a) % m;
n /= 2;
}
return ret;
}
int main() {
kuaidian;
int T;
cin >> T;
for(int tt = 1; tt <= T; ++tt) {
cin >> n >> k >> m;
ll sum = 0;
for(int i = 0; i < n; ++i) {
ll x; cin >> x;
sum = (sum + x) % m;
}
ll ans = ( (q_pow(n, k-1)*k % m) * sum ) % m;
cout << "Case " << tt << ": " << ans << endl;
}
return 0;
}