萌新保龄求调(3WA+2TLE)
查看原帖
萌新保龄求调(3WA+2TLE)
731239
RTX7070Ti楼主2024/1/12 13:56
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdio>
using namespace std;

long long n, p, p2, k, ans;
long long a[5000010], pre[5000010], suf[5000010];
long long inv(long long x){
	if (x == 1) return 1;
	return (p - p / x) * inv(p % x) % p;
}
int main(){
	//freopen("P5431_1.in", "r", stdin);
	//freopen("P5431_1.out", "w", stdout);
	
	cin >> n >> p >> k;
	for (long long i = 1; i <= n; i++){
		cin >> a[i];
	}
	
	pre[1] = a[1];
	for (long long i = 2; i <= n; i++){
		pre[i] = pre[i - 1] * a[i] % p;
	}
	suf[n] = a[n];
	for (long long i = n - 1; i >= 1; i--){
		suf[i] = suf[i + 1] * a[i] % p;
	}
	
	
	for (long long i = 1, j = k; i <= n; i++, j = j * k % p){
		ans += j * (pre[i - 1] * suf[i + 1] % p) % p;
		 //cout << ans << endl;
	}
	
	cout << ans * inv(pre[n]) % p;
	
	return 0;
}

样例没过

2024/1/12 13:56
加载中...