PS

BOJ 29719 : 브실이의 불침번 근무

lickelon 2025. 2. 9. 17:01
  • 문제 링크 : 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