最后一个点需要用快速乘,但快速乘遇到负数可能会有问题
快速乘遇到负数可能会陷入死循环,所以可以利用if特判定一下,如果b真为负数的话打上标记,令b=-b
ll ksc(ll a,ll b,ll p){ ll ans=0,t=1; if(b<0){b=-b;t=-1;} while(b){ if(b&1)ans=(ans+a)%p; a=a+a%p; b>>=1; } return ans*t; }