30pts,后两个点TLE,求助啊!
查看原帖
30pts,后两个点TLE,求助啊!
658786
STUDENT00楼主2022/10/5 14:32

这不就是逆元模板吗?为甚么我后两个点TLE了呢? 代码如下:

#include<bits/stdc++.h>
using namespace std;
int n,p,k,a,s=1,ans;
int qpow(int a,int b){
	int s=1;
	while(b){
		if(b&1) s=s*a%p;
		a=a*a%p;
		b>>=1;
	}
	return s;
}
int main(){
	scanf("%d%d%d",&n,&p,&k);
	for(int i=1;i<=n;i++){
		scanf("%d",&a);
		s=s*k%p;
		ans=(ans+s*qpow(a,p-2))%p;
	}
	printf("%d",ans);
	return 0;
}
2022/10/5 14:32
加载中...