//龟速乘 inlineintq_m(int a, int k, int p) { int ans = 0; while (k) {// 区别在这里 ↓ if(k & 1)ans += a, ans %= p; k >>= 1; a = a + a, a %= p; //和这里 ↑ } return ans; } //快速幂 inlineintq_p(int a, int k, int p) { int ans = 1; while (k) { if (k & 1)ans = q_m(ans, a, p), ans %= p; k >>= 1; a = q_m(a, a, p), a %= p; } return ans; }