题解 | 礼物清单
礼物清单
https://www.nowcoder.com/practice/df443fe5b05f4d748922584265bfcf98
#include <iostream>
using namespace std;
const long long MOD = 1000000007LL;
long long mod_pow(long long base, long long exp, long long mod) {
long long res = 1;
base %= mod;
while (exp > 0) {
if (exp & 1)
res = (res * base) % mod;
base = (base * base) % mod;
exp >>= 1;
}
return res;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
long long n, m;
cin >> n >> m;
long long pow2 = mod_pow(2, m, MOD);
long long base = (pow2 - 1 + MOD) % MOD;
long long ans = mod_pow(base, n, MOD);
cout << ans << '\n';
return 0;
}

