Matrix Binary Exponentiation

  1. // 快速幂
  2. long fastPow(int num, int n) {
  3. long ret = 1;
  4. for(;n > 0; n >> 1) {
  5. if (n&1) {
  6. ret *= num;
  7. }
  8. }
  9. }
  1. template <typename T>
  2. typename T fastPow(T t, int n){
  3. T ret;
  4. while (n > 0) {
  5. if (n&1) {
  6. ret.multi(t);
  7. }
  8. t.multi(t);
  9. n>>1;
  10. }
  11. }