Skip to content

Commit 807bbd9

Browse files
authored
[20251106] BOJ / G1 / XOR Hashing / 권혁준
1 parent 600e2f2 commit 807bbd9

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
```cpp
2+
#include <bits/stdc++.h>
3+
using namespace std;
4+
using ll = long long;
5+
6+
const ll MOD = 1e9 + 7;
7+
ll N, M;
8+
9+
ll power(ll a, ll b) {
10+
if (b == 0) return 1;
11+
if (b == 1) return a % MOD;
12+
ll h = power(a, b >> 1) % MOD;
13+
h = h * h % MOD;
14+
return (b & 1) ? h * a % MOD : h;
15+
}
16+
17+
int main() {
18+
cin.tie(0)->sync_with_stdio(0);
19+
20+
cin >> N >> M;
21+
N = (1 << N);
22+
if (M > N) return cout << 1, 0;
23+
24+
ll g = power(N, M), p = 1;
25+
for (ll i = N; i > N - M; i--) p = (p * i) % MOD;
26+
27+
ll ans = ((g - p + MOD) % MOD) * power(g, MOD - 2) % MOD;
28+
cout << ans;
29+
30+
}
31+
```

0 commit comments

Comments
 (0)