输出一个整数,表示a*b mod p的值。 数据范围 1≤a,b,p≤1018 1234567891011ll qadd(ll a, ll b, ll p){ ll res = 0; while (b) { if (b & 1) res = (res + a) % p; a = (a + a) % p; b >>= 1; } return res;} 利用longlong取模溢出相抵消 123456789ll mul(ll x,ll y,ll m){ x%=m;y%=m; ll d=((long double )x*y/m); d=x*y-d*m; if(d>=m)d-=m; if(d<0)d+=m; return d;}