[BOJ][구현][브3][1009] 분산처리

문제 링크

문제링크

첫 번째 풀이

알고리즘

ACM호텔문제에서 사용했던 방법을 사용합니다.

h,w,n를 사용해서 수식으로 표현해도 됩니다.

아래 표에 있는 식은 외워두면 좋습니다.

  • $(a-1)%b+1$ : 1, … , b를 반복해서 얻을 수 있음
  • $(a-1)/b+1$ : 1 b개, 2 b개 …를 반복해서 얻을 수 있음
a b a%b (a-1)%b+1 (a-1)/b+1
1 3 1 1 1
2 3 2 2 1
3 3 0 3 1
4 3 1 1 2
5 3 2 2 2
6 3 0 3 2
7 3 1 1 3
8 3 2 2 3
9 3 0 3 3
10 3 1 1 4
11 3 2 2 4
12 3 0 3 4

정답 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;


int main()
{
    //freopen("input.txt", "r", stdin);
    ios_base::sync_with_stdio(0); cin.tie(0);

    int tc = 0;
    cin >> tc;
    while (tc--) {
        ll n, m;
        cin >> n >> m;
        n = (n - 1) % 10LL + 1; // 1. 공식에 따라 변형
        ll result = n;
        for (ll i = 0; i < m-1; i++) {
            result *= n; // 2. 곱한다
            result = (result - 1) % 10LL + 1; // 3. 다시 한 번 공식을 적용
        }
        cout << result << "\n";
    }
    return 0;
}

Success Notice: 수고하셨습니다. :+1:

Leave a comment