样例过了,但是 WA+RE
查看原帖
样例过了,但是 WA+RE
482610
Mortidesperatslav楼主2023/11/2 19:17
#include<bits/stdc++.h>
using namespace std;
long long qpow(long long x,long long k,long long mod){
	long long ans=1;
	x%=mod;
	while(k){
		if(k&1)ans=(ans*x)%mod;
		x=(x*x)%mod;
		k>>=1;
	}
	return ans;
}
long long qmod(long long a,long long b,long long mod){
	long long ans;
	ans=a*qpow(b,mod-2,mod);
	return (ans%mod+mod)%mod;
}
long long n,p,k,a[2000005],tms=1,sm=0,bs=0;
long long qzj[2000005],hzj[2000005];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>n>>p>>k;
	bs=k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		tms=(tms*a[i])%p;	
	}
	qzj[0]=1;
	hzj[n+1]=1;	
	for(int i=1;i<=n;i++)qzj[i]=(qzj[i-1]*a[i])%p;
	for(int i=n;i>0;i--)hzj[i]=(hzj[i+1]*a[i])%p;
	for(int i=1;i<=n;i++){
		sm=(sm+bs*(qzj[i-1]%p*hzj[i+1])%p)%p;
		bs=(bs*k)%p;
	}
	cout<<qmod(sm,tms,p);
}
2023/11/2 19:17
加载中...