- 문제 링크 : boj.kr/29719
- 난이도 : S4
- 태그 : 조합론
코드
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define INF 0x7FFFFFFF
#define MOD 1000000007
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll, ll>;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n, m;
cin >> n >> m;
ll ans = 1;
for(int i = 0; i < n; i++) {
ans *= m;
ans %= MOD;
}
ll temp = 1;
for(int i = 0; i < n; i++) {
temp *= m-1;
temp %= MOD;
}
ans += MOD - temp;
ans %= MOD;
cout << ans;
return 0;
}
풀이
가능한 경우의 수는 (전체 경우의 수) - (브실이를 제외한 사람들로 가능한 경우의 수)이다.
따라서 답은 $m^n - (m-1)^n$이 된다.
728x90
'PS' 카테고리의 다른 글
BOJ 11645 : I’ve Been Everywhere, Man (0) | 2025.02.11 |
---|---|
BOJ 11008 : 복붙의 달인 (0) | 2025.02.10 |
BOJ 12789 : 도키도키 간식드리미 (0) | 2025.02.08 |
BOJ 13335 : 트럭 (0) | 2025.02.07 |
BOJ 3258 : 컴포트 (0) | 2025.02.06 |