30分超时求助
查看原帖
30分超时求助
999274
CNS_5t0_0r2楼主2023/7/13 10:27
#include<bits/stdc++.h>
#define int long long
const int N = 5 * 1e6 + 9;
using namespace std;
int n,p,k,s,tmp,ans;
int k_pow[N];
int read(){
    int res = 0, ch = getchar();
    while(!isdigit(ch) && ch != EOF)
        ch = getchar();
    while(isdigit(ch)){
        res = (res << 3) + (res << 1) + (ch - '0');
        ch = getchar();
    }
    return res;
}
int inv(int i){
	if(i <= 1)
		return 1;
	return ((p - p / i) * inv(p % i)) % p;
}
signed main(){
	n = read();p = read();k = read();
	s = k;
	for(int i = 1;i <= n;i++){
		tmp = read();
		ans += s * inv(tmp);
		s = s % p * k % p;
		ans %= p;
	}
	printf("%lld",ans);
}
2023/7/13 10:27
加载中...