你是不是这样写扩欧了:
k=exgcd(a,m,x,y); h=m/k; x=((x*b/k)%h+h)%h;
其中的x*b很明显是两个longlong相乘。
x*b
那怎么办呢?
快速加,你值得拥有:
int ksj(int a,int b,int p){ int ans=0; a%=p; while(b){ if(b&1) ans=(ans+a)%p; b>>=1; a=(a+a)%p; }return ans%p; }
这不算讨论区题解吧