当一个数的幂很高时,需要更快的方式去求值。这里给出一个快速幂的模板。
第一个参数是底数,第二个参数是幂,第三个参数是要对齐取模的数。
templateinline T qpow(T a, U b, int p) { T res = 1; while(b){ if(b & 1) res = res * a % p; a = a * a % p; b >>= 1; } return res; }

当一个数的幂很高时,需要更快的方式去求值。这里给出一个快速幂的模板。
第一个参数是底数,第二个参数是幂,第三个参数是要对齐取模的数。
templateinline T qpow(T a, U b, int p) { T res = 1; while(b){ if(b & 1) res = res * a % p; a = a * a % p; b >>= 1; } return res; }